Por que as classes padrão às vezes têm métodos aparentemente não relacionados?

Enquanto estudava a biblioteca Java padrão e suas classes, não pude deixar de notar que algumas dessas classes têm métodos que, na minha opinião, têm quase nenhuma relevância para a causa dessas classes.

Os métodos de que estou falando são, por exemplo,Número inteiro # getInteger, que recupera um valor de algumas "propriedades do sistema" ouSystem # arraycopy, cujo objetivo é bem definido por seu nome. Ainda assim, esses dois métodos parecem meio fora de lugar, especialmente o primeiro, que por algum motivo vincula o trabalho com recursos do sistema a uma classe de wrapper de tipo primitivo.

Do meu ponto de vista atual, essa política de posicionamento de métodos parece uma violação de um princípio fundamental do projeto de POO: que cada classe deve se dedicar a resolver seu conjunto específico de problemas e não se transformar em um canivete suíço. Mas como eu não acho que os designers de Java sejam idiotas, presumo que exista alguma lógica por trás da decisão de colocar esses métodos exatamente onde eles estão. Ficaria muito grato se alguém pudesse explicaro que essa lógica realmente é.

Obrigado!

Atualizar

Algumas pessoas sugeriram o fato de que o Java tem coisas ilógicas que são simplesmente remanescentes de um passado turbulento. Reformulo minha pergunta: por que o Java não está disposto a marcar suas falhas arquiteturais como obsoletas, já que não é provável que os recursos obsoletos existentes sejam provavelmente descontinuados em qualquer futuro observável, e tornar as coisas obsoletas realmente ajuda a não usá-las em novos código criado?

questionAnswers(0)

yourAnswerToTheQuestion