什么是 Java 中的空未初始化 final 变量?
final 变量只能显式初始化一次。声明为 final 的引用变量永远不能重新赋值为引用另一个对象。但是,对象内部的数据可以更改。所以,可以更改对象的状态,但不能更改引用。对于变量,final 修饰符通常与 static 联合使用,以使常量成为一个类变量。
因此,一旦我们声明 final 变量,就必须在声明时或使用构造函数初始化该 final 变量。
否则,可能会发生一个编译时错误,提示“可能没有初始化空 final 字段 num”。
示例
public class Test{ final int num; public static void main(String args[]){ Test t = new Test(); System.out.println(t.num); } }
错误
C:\Sample>javac Test.java Test.java:2: error: variable num not initialized in the default constructor final int num; ^ 1 error
广告