/ / Mutabilità degli array in java-java, immutabilità, mutabilità

Mutabilità degli array in java-java, immutabilità, mutabilità

Se un metodo restituisce un oggetto da un particolare indice di matrice e quindi questo oggetto viene modificato, questo oggetto verrà modificato solo localmente o l'oggetto nell'array verrà modificato?

C'è un modo per forzare ogni caso?

risposte:

4 per risposta № 1

Anche l'oggetto nella matrice verrebbe modificato. Funziona in questo modo perché, sebbene Java sia passato per valore, sta trasmettendo il valore dell'oggetto riferimento. Quindi alla fine l'array ha una copia delriferimento e qualunque cosa ottiene il risultato ha una copia del riferimento. Quando modifichi l'oggetto stesso, stai modificando la cosa a cui entrambi "puntano", quindi entrambi vedono il cambiamento.

L'unico modo per rendere questo non vero è fare una copia dell'elemento prima di restituirlo.

In alternativa, se rendi il tuo oggetto immutabile, non devi preoccuparti di questi dettagli perché tu può "t cambia l'oggetto in primo luogo.


1 per risposta № 2

Devi fare un copia difensiva dell'oggetto se si desidera che non venga modificato