Se um método retornar um objeto de um índice de matriz específico e esse objeto for modificado, esse objeto seria modificado apenas localmente ou o objeto na matriz também seria modificado?
Existe uma maneira de forçar cada caso?
Respostas:
4 para resposta № 1O objeto na matriz também seria modificado. Funciona assim porque, embora Java seja transmitido por valor, ele está transmitindo o valor do objeto referência. Portanto, no final, a matriz possui uma cópia doreferência e tudo o que obtém o resultado tem uma cópia da referência. Quando você modifica o próprio objeto, você está modificando a coisa para a qual ambos "apontam". Portanto, ambos vêem a mudança.
A única maneira de fazer isso não ser verdade é fazer uma cópia do elemento antes de devolvê-lo.
Como alternativa, se você tornar seu objeto imutável, não precisará se preocupar com esses detalhes porque pode "t mude o objeto em primeiro lugar.
1 para resposta № 2
Você precisa fazer um cópia defensiva do objeto se você não desejar modificá-lo