我一直在阅读有关封装的内容并且在想;如果我创建一个新类,它默认是可变的吗? 如果是这样的话,如果可能的话,我怎样才能使它成为一个不可变的类,而不仅仅是进行防御性复制?
感谢。
答案 0 :(得分:1)
这取决于你在课堂上的内容。
public class MutableClass {
private String firstName;
public MutableClass(String s) {
firstName = s;
}
public String getFirstName() {
return firstName;
}
// this allows mutation...
public void setFirstName(String s) {
firstName = s;
}
}
public class ImmutableClass {
private String firstName;
public MutableClass(String s) {
firstName = s;
}
public String getFirstName() {
return firstName;
}
}
这并没有考虑像setAccessible这样的东西,但是我希望这不是你所关心的。
我希望有所帮助。