Junior — Middle
Come si può implementare una classe affinché il suo stato sia immutabile dopo la creazione?
sobes.tech AI
Risposta dell'AI
Per creare una classe immutabile in Java, bisogna:
- Rendere la classe
finalin modo che non possa essere ereditata o modificata. - Dichiarare tutti i campi della classe come
private final. - Inizializzare tutti i campi tramite il costruttore.
- Non fornire setter (metodi per modificare i campi).
- Se i campi sono oggetti mutabili (ad esempio, array, collezioni), crearne copie durante il passaggio al costruttore e al ritorno dai getter.
Esempio:
public final class ImmutablePerson {
private final String name;
private final int age;
public ImmutablePerson(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Una classe di questo tipo, dopo aver creato l'oggetto, non permette di modificare il suo stato.