[英]Assigning value to a static final variable
我有一個 class,它本身有多個實例,想知道是否有辦法覆蓋或抑制警告“變量‘x’可能尚未初始化”。
class Main{
public Main(){
Astronaut.GenerateData(5);
Astronaut me = new Astronaut();
}
}
class Astronaut extends Player{
private static final int HEIGHT;
public Astronaut(){
super();
/*Does stuff*/
}
public static void GenerateValues(int valueToBeUsed){
HEIGHT=valueToBeUsed;
}
}
我嘗試了很多不同的選擇,我知道解決這個問題的方法,但總的來說,如果我能這樣做,代碼會更清晰。
首先,我認為您不應該在Player
class 中將HEIGHT
聲明為static
var。但這可能是一個測試代碼,所以由您決定。
談到這個問題,我不確定你提到的解決方法是什么,但由於以下問題,這段代碼是wrong
的:
final
變量分配默認值,您需要用一些值對其進行初始化。static final
class 變量應在聲明時或在static
塊內初始化。 private static final int HEIGHT;
static {
HEIGHT = 10;
}
final
變量分配新值。 所以這個HEIGHT=valueToBeUsed;
會導致編譯錯誤。基於以上內容,您得到的不僅僅是警告,而是編譯時錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.