/ Mutabilidade de matrizes em java - java, imutabilidade, mutabilidade

Mutabilidade de matrizes em java - java, imutabilidade, mutabilidade

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 № 1

O 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