java 语言的一个相当好的特性是它答应我们使用 final 要害字(作为类型检查器的伪指令)来声明何时我们要使某个数据成为不可变。
使用 final 要害字来避免变化是“钉住”类的方法行为的一个好方法。每次修改字段时,都有可能改变引用该字段的方法的行为。另外,将字段标记为 final 让阅读程序的其他程序员立即知道:不管整个程序有多大,决不要修改该字段。例如,请考虑下列表示不可变列表的类层次结构。 清单 1. 表示不可变列表的类层次结构
abstract class List {...} class Empty extends List {...} class Cons extends List { PRivate final Object first; private final List rest; }