Java允许生成空白的final,所谓空白的final是指声明为final但又未给定初值的域。无论什么情况,编译器都确保空白的final在使用前必须初始化。必须在域定义处或者每个构造器中用表达式对final进行赋值。
class TwoTuple<A,B> {
public final A first;
public final B second;
public TwoTuple(A a,B b) {
first = a;
second = b;
}
}