Как создать переменную, которая может быть установлена только один раз, но не является окончательной в 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");
}
}
}
Это хороший способ понять, что яя пытаюсь сделать? Я чувствую, что должен быть в состоянии установить что-то как неизменное после этогоили что существует шаблон, который я могу использовать, чтобы сделать его более элегантным.