這段代碼很熟悉。有沒有辦法在java中創建一個不可變的對象,當對象有mutators?
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和setters。在我引用了我想要的setter之後,我可以使該Object不可變嗎?像這樣的東西是我的夢想......
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()..但有可能實現這樣的事情?
可能重複:// stackoverflow.com/questions/6305752/how-to-create-immutable-objects-in-java) – silentprogrammer 2015-03-13 16:38:16
沒有一種方法可以完成列表實現的功能 - 但您也可以克隆該對象。這樣,如果新對象是原始對象,將不會被修改。 – Obicere 2015-03-13 17:14:03
注意與 - 如何在Java中創建不可變對象?我希望對象是可變的 - 但有時候我可能會決定,我已經做了必要的編輯 - 不應該再做更多的編輯。 – searchingforPerfection 2015-03-16 13:15:05