我的代碼時:A.java
編譯顯示錯誤的錯誤消息編譯未初始化的最後靜態變量
package pack1;
public class A {
final static int x;
}
命令用來編譯代碼:
javac -d . A.java
編譯時錯誤:
A.java:5: error: variable x not initialized **in the default constructor**
final static int x;
^
1 error
現在,這裏編譯器應該會拋出錯誤,例如=>
error: variable x not initialized **in the static block**
因爲這裏在這種情況下可能的地方,你可以初始化,聲明的最後靜態初始化的變量只是在聲明本身或 2)靜態塊內的時間=> 1)
有圖片中沒有構造函數...仍然編譯器拋出誤導性的錯誤。
我使用JDK 1.8
java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
靜態最終不能在構造函數中初始化,因爲它會嘗試每一個對象創建時間,該時間誤差分配值。相反,你是否試圖在錯誤試圖說的默認構造函數中使用變量x? – OTM
歡迎來到Stack Overflow!我們是一個問答網站,而不是bug庫。請編輯您的問題以清楚說明您需要哪些幫助。 –
https://bugs.openjdk.java.net/browse/JDK-8184444 – Holger