Я делал некоторое чтение here для создания неизменяемых объектов, и мне было интересно, у меня есть следующий класс:Использование конечных частных или частных установщиков для неизменяемых классов
final public class AnonymousCilent {
final private String anonymousCilentID;
public AnonymousCilent(String anonymousCilentID) {
this.anonymousCilentID = anonymousCilentID;
}
Это путь Oracle предлагает создать неизменны классы, однако, на C# вы можете объявить свой сеттер частным, в Java он остается неизменным, если я это сделаю?
private String anonymousCilentID;
public AnonymousCilent(String anonymousCilentID) {
this.setAnonymousCilentID(anonymousCilentID);
}
public String getAnonymousCilentID() {
return anonymousCilentID;
}
private void setAnonymousCilentID(String anonymousCilentID) {
this.anonymousCilentID = anonymousCilentID;
}
Что случилось с реализацией собственной сеттер, вместо того, чтобы сделать свою личную переменную окончательным, и с помощью конструктора?
Почему у вас есть сеттер, если его никто не может назвать? –
Почему у вас есть сеттер, если только этот класс может его назвать? – Makoto
http://stackoverflow.com/questions/279507/what-is-meant-by-immutable – yfklon