java实例final变量或者在定义的时候赋值、或者在所有的构造函数中赋值,否则就会编译报错。
例如,在类Test2中定义了一个实例final变量name,在定义的时候没有赋值。有两个构造函数,在一个构造函数中对name赋值了,另外一个构造函数中没有赋值,就会编译报错:
public class Test2 {
private final String name;
public Test2() {
//this.name = "defaultName";
}
public Test2(String name) {
this.name = name;
}
public static void main(String[] args) {
}
}
修改方法1:在定义的时候赋值:
修改方法2:在定义的时候不赋值,但在所有的构造函数中都要赋值: