So erstellen Sie eine Variable, die nur einmal festgelegt werden kann, aber in Java nicht endgültig ist

Ich möchte eine Klasse, von der ich Instanzen mit einer Variablen erstellen kann, die nicht gesetzt ist (dieid), initialisieren Sie diese Variable später und haben Sie sieunveränderlich nach der Initialisierung. Eigentlich hätte ich gerne einefinal Variable, die ich außerhalb des Konstruktors initialisieren kann.

Momentan improvisiere ich das mit einem Setter, der einen wirftException wie folgt:

public class Example {

    private long id = 0;

    // Constructors and other variables and methods deleted for clarity

    public long getId() {
        return id;
    }

    public void setId(long id) throws Exception {
        if ( this.id == 0 ) {
            this.id = id;
        } else {
            throw new Exception("Can't change id once set");
        }
    }
}

Ist dies eine gute Methode, um das zu tun, was ich versuche? Ich habe das Gefühl, dass ich in der Lage sein sollte, etwas als unveränderlich festzulegen, nachdem es initialisiert wurde, oder dass es ein Muster gibt, das ich verwenden kann, um es eleganter zu machen.

Antworten auf die Frage(11)

Ihre Antwort auf die Frage