Java 如何使一个类不可变?

Java

答案

我认为这是一个相当困难的问题。您需要对类进行多次修改,以实现不可变性:

  1. 将类声明为 final,使其无法被继承。
  2. 所有域都用 private 修饰,不允许直接访问。
  3. 不提供变量的 setter 方法。
  4. 所有可变域都用 final 修饰, 使它的值只能分配一次。
  5. 通过构造函数执行深克隆初始化所有域。
  6. getter 方法获取的对象执行克隆以返回副本,而不是返回实际的对象引用。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *