什麼是 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
廣告