【发布时间】:2016-06-18 15:15:32
【问题描述】:
在一个类中,我想定义一个空对象并在我们需要的任何地方使用它。该对象需要是不可变的,以避免意外修改。如果此对象被定义为类的public static final 成员,则如果类本身是可变的,则可以更改该对象。
在可变类中创建不可变对象的好方法是什么?
【问题讨论】:
-
如果您希望它是不可变的,则将类设计为不可变的(或者如果您不能这样做,则将其包装为 不可变的类) .
-
不可能。要么提供一个每次调用时返回一个新实例的方法,要么定义一个只读接口并使其成为常量的类型,或者创建一个包装原始类并防止修改的类。
标签: java oop object immutability