I was doing some reading here for creating immutable objects, and I was wondering, I have the following class:
final public class AnonymousCilent {
final private String anonymousCilentID;
public AnonymousCilent(String anonymousCilentID) {
this.anonymousCilentID = anonymousCilentID;
}
This is the way Oracle suggests to create immutable classes, however, in C# you can declare your setter private, in Java is it still immutable if I do this?
private String anonymousCilentID;
public AnonymousCilent(String anonymousCilentID) {
this.setAnonymousCilentID(anonymousCilentID);
}
public String getAnonymousCilentID() {
return anonymousCilentID;
}
private void setAnonymousCilentID(String anonymousCilentID) {
this.anonymousCilentID = anonymousCilentID;
}
What is wrong with implementing a private setter, instead of making my private variable final, and using a constructor?