【发布时间】:2015-03-13 16:35:17
【问题描述】:
这段代码很熟悉。
List<Character> list = new ArrayList<Character>();
// populate the list
list.add('X');
list.add('Y');
// make the list unmodifiable
List<Character> immutablelist = Collections.unmodifiableList(list);
现在我有一个带有变量、getter 和 setter 的典型模型类。在我调用了我想要的设置器之后,我可以使那个对象不可变吗?这样的事情是我的梦想......
Person person = new Person();
person.setFirstName("firsName");
person.setLastname("lastName");
// i have a lot to set!!- Person is pretty large
// some way to do this
Person stubborn = Object.immutableObject(person);
我知道没有 Object.immutableObject()..但是有可能实现这样的事情吗??
【问题讨论】:
-
没有办法完全按照列表实现的方式进行操作 - 但您也可以克隆对象。这样,如果新对象被修改,则原始对象不会被修改。
-
注意与-如何在Java中创建不可变对象?我希望对象是可变的 - 但有时我可能会决定,我已经完成了必要的编辑 - 不应该进行更多的编辑。
标签: java