当前位置:嗨网首页>书籍在线阅读

04-案例实现

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

案例实现

根据如下步骤实现一个不可变类。

1.将该类标记为 final 。不可变类禁止了其他类的继承。

2.所有属性都必须是 privatefinal 型的。属性的值只能设置一次。

3.不要提供修改属性的方法。属性必须在构造器中初始化。

4.如果属性的值是可变对象(比如 java.util.Date ),则其getter方法总是返回一个保护性副本。

5.不要把 this 从不可变类的构造器中泄露出去(比如,下面的代码在构造器结束之前泄露了 this ):

public final NotSoImmutable implements Listener {
  private final int x;
  public NotSoImmutable(int x, Observable o) {
    this.x = x;
    o.registerListener(this);
  }
}