什么是 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

更新于: 02-09-2022

1K+ 浏览量

开启你的 职业

完成课程,获取认证

开始
广告