2013-06-02 17 views
-4

我創建了一個Initialize類以避免大量不需要的對象。要使用這個對象,我創建它的一個實例,像這樣:NPE正在拋出靜態類參考,爲什麼以及如何?

public static Initialize INIT = new Initialize(); 

每當我用「Initialize.INIT」我在「初始化」得到空指針。

我能做些什麼來解決我原來的錯誤,StackOverflow上避免的NPE?

+4

什麼是構造函數的代碼?注意:'public static'變量應該至少也是'final' – fge

+8

請向我們展示完整的異常和回溯。 –

+0

什麼@ PM77-1,也顯示使用代碼示例,您可以訪問'Initialize.INIT'。嘗試並做出最終決定,看看你是否可以重現問題。 – fge

回答

1

的NPE的原因是在您嘗試使用它的時候INITnull

這怎麼可能?畢竟你初始化它到一個新的對象,並且new操作符永遠不會返回null

那麼最可能的解釋是,東西指定nullINIT。您應該能夠通過將該字段聲明爲final來避免此情況。

(也有可能你有一些代碼在初始化之前查看INIT的值,這隻有在你執行其他類的靜態初始化代碼時纔會發生,並且存在一個依賴循環這個類的靜態和另一個之間。)

相關問題