在Java中,最终变量只能分配一次。可以在声明期间或以后分配它。如果最终变量未分配任何值,则将其视为空白最终变量。以下是管理空白最终变量初始化的规则。
空白实例级别的最终变量不能保留未初始化。
空白的Instance级最终变量必须在每个构造函数中初始化。
空白的Instance级最终变量不能在类方法中初始化。
空白的静态最终变量不能保留未初始化。
静态最终变量必须在静态块中初始化。
静态最终变量不能在构造函数或类方法中初始化。
public class Tester {
public final int a;
public static final int b;
static {
b = 2;
}
Tester() {
this(1);
}
Tester( int a) {
this.a = a;
}
public static void main(String[] args) {
Tester tester = new Tester();
System.out.println("a = " + tester.a + ", b = " + b);
}
}输出结果
a = 1, b = 2