0
我有一個實用工具類,看起來像這樣:靜態塊永遠不會運行
public final class MyUtils {
public static final List<String> MY_VALUES = new ArrayList<String>();
{
MY_VALUES.add("foo");
MY_VALUES.add("bar");
}
}
我把這個從另一個類就像這樣:
MyUtils.MY_VALUES
如果我這樣做,名單空,如果我調試我看到靜態塊永遠不會運行。
據我所知,從When does static class initialization happen?和How to force a class to be initialised?的答案我應該馬上做a static field of the class is assigned
。我也嘗試使可變非最終符合條件「a non-constant static field is used
」。
我可以使用初始化方法,也可以在其他兩個問題中獲得,也可以在Why doesn't my static block of code execute?中使用,但我仍然想理解它爲什麼不起作用,儘管我似乎已經完成了語言的條件規範。
工作,謝謝。將是幾分鐘,直到我可以接受你的答案。你能解釋一下沒有'static'關鍵字的結構有什麼區別嗎?我之前使用過,它一直工作到目前爲止(例如,如果我調用靜態方法,塊之前運行)。 – 2013-03-27 01:13:33
看到我上面編輯的答案 – 2013-03-27 01:19:03
真棒提示,thx – Jason 2013-03-27 01:27:17