什么是Java中未初始化的空白最终变量?

最终变量只能显式初始化一次。声明为final的引用变量永远不能重新分配为引用其他对象。但是,可以更改对象内的数据。因此,可以更改对象的状态,但不能更改引用的状态。对于变量,最终修饰符通常与static一起使用,以使常数成为类变量。

因此,一旦声明了最终变量,则必须在声明或使用构造函数时初始化最终变量。

否则,可能会出现编译时错误,提示“空白的最终字段编号可能尚未初始化”。

示例

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