Sobes.tech
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 final in 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.