在我的程序中,我想创建一个不可变对象。例如,使arraylist或map不可变。我们知道我们有String I.e是一个不可变对象,同样我想创建自己的不可变对象。
答案 0 :(得分:1)
不可变只意味着无法更改对象的值。例如,这是一个围绕整数的不可变包装器:
public class ImmutableInt {
private final int value;
public ImmutableInt(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
答案 1 :(得分:0)
使对象不可变只意味着在实例化之后不能更改任何成员。您可以通过将实例字段标记为private和final来完全控制Java中的此操作。这会强制它们在实例化对象时进行初始化,并防止在该点之后进行任何进一步修改。
如果您正在寻找一种简单的方法来使Java集合“不可变”,请查看java.util.Collections类,它提供了为可变集合提供只读包装的静态方法。 http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#unmodifiableCollection(java.util.Collection)