【发布时间】:2011-09-02 11:50:50
【问题描述】:
我有一个包含各种成员变量的类。有一个构造函数,有 getter 方法,但没有 setter 方法。事实上,这个对象应该是不可变的。
public class Example {
private ArrayList<String> list;
}
现在我注意到以下情况:当我使用 getter 方法获取变量列表时,我可以添加新值等等 - 我可以更改 ArrayList。当我下次为此变量调用get() 时,将返回更改后的ArrayList。怎么会这样?我没有再设置它,我只是在努力!
对于String,这种行为是不可能的。那么这里有什么区别呢?
【问题讨论】:
标签: java object immutability member getter-setter