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

更新时间:2022-09-02

1 千次 + 浏览

开启你的 职业

完成培训课程获得认证

入门
广告