【发布时间】:2014-06-25 23:01:44
【问题描述】:
我有一个对象:
Object obj = create();
...我需要设置这个对象的一些属性:
obj.setParam("7696969", 0x506);
在这个过程之后,我需要确保obj 不能被修改。
有没有办法将obj 设置为final 而无需创建另一个复制obj 的final Object?
【问题讨论】:
-
您正在寻找不可变类。
-
在你的类中保留一个布尔值,指示你的数据是否已经初始化。在设置参数之前检查它,你就完成了。
-
一个类声明为final并不意味着不能修改,只是不要扩展。
-
而声明为final的字段只是表示该字段在初始化后不能修改,并不是说任何对象的字段地址都不能修改。
标签: java