Как создать переменную, которая может быть установлена только один раз, но не является окончательной в Java

Я хочу, чтобы класс, который я могу создать экземпляры с одной переменной unset (id), затем инициализируйте эту переменную позже и получите еенеизменным после инициализации, Эффективно ямне нравитсяfinal переменная, которую я могу инициализировать вне конструктора.

В настоящее время ям импровизирует это с сеттером, который бросаетException следующее:

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");
        }
    }
}

Это хороший способ понять, что яя пытаюсь сделать? Я чувствую, что должен быть в состоянии установить что-то как неизменное после этогоили что существует шаблон, который я могу использовать, чтобы сделать его более элегантным.

Ответы на вопрос(11)

Ваш ответ на вопрос