class Temp{
final static int x;
public static void main(String[] args){
}
}
編譯錯誤:變量x在默認構造方法做默認構造函數初始化的靜態變量?
爲什麼自變量是靜態的它說不是在默認的構造函數初始化未初始化? 默認構造函數在這裏有什麼作用?
class Temp{
final static int x;
public static void main(String[] args){
}
}
編譯錯誤:變量x在默認構造方法做默認構造函數初始化的靜態變量?
爲什麼自變量是靜態的它說不是在默認的構造函數初始化未初始化? 默認構造函數在這裏有什麼作用?
它不僅是靜態的......它是最終的靜態的:) 靜態最終成員應該初始化內聯或靜態塊。
Thanx ...但我的問題是,這裏的默認構造函數是什麼 –
@RahulGupta它是最肯定的**不** **角色的_any_構造函數,默認或其他,以初始化'靜態「字段,並在這一點上,該消息是誤導。 –
@KevinAnderson thanx –
你說得對,該錯誤信息是不是非常有幫助。一個static final
變量(一般慣例是把static
final
前)必須初始化或者在申報點或通過一個靜態塊:
final static int x = 0;
//or
final static int y;
static {
y = 0;
}
我不能說任何相關的bug報告,所以你可以,如果提交一個你要。
Thanx ...我嘗試了最終的非靜態變量也...它給出了同樣的錯誤。如果最終是非靜態的......錯誤是可以接受的 –
這是因爲變量是'final',你需要在其聲明的時刻進行初始化。 –
或在一個靜態初始化塊 – Flown