2010-08-04 143 views
1

我想知道是否有一個編譯器選項,可以讓我刪除/治癒出現的錯誤(「變量X可能未被初始化」),當我編譯一個類有一個最後的領域在它。或者更好的辦法是將最終字段初始化爲默認的java值。正在初始化最終字段 - Java

感謝,

ExtremeCoder

+1

爲什麼你想這麼做? – 2010-08-04 10:35:42

+2

那種打敗了最終領域的目的,不是嗎? – BoltClock 2010-08-04 10:36:23

+0

我這樣做是因爲我將一個XML文檔解組爲1000個對象。無論如何,這些字段已初始化... – ExtremeCoder 2010-08-04 10:51:16

回答

3

治癒的錯誤修復代碼的方式:請確保您顯式初始化值。我不相信有任何選擇可以忽略錯誤。

模擬這種方法的一種方法是給構造函數局部變量設置爲Java默認值,然後在構造函數過程中替換它們。在構造函數的最後,將字段值設置爲局部變量的值。

請注意,如果您的構造函數中有很多代碼,您可能需要考慮重構...

+0

謝謝,我想我可能會嘗試你的第二個想法。問題是我有超過1000個生成的源文件,我不想每個都去查閱。 也許我應該補充一點,我實際上使用JAXB來生成這些,我將刪除setter方法並使字段最終。現在,這意味着這些字段正在通過解組過程初始化(這就是爲什麼我想一起擺脫錯誤的原因,因爲它無關緊要... 雖然謝謝 – ExtremeCoder 2010-08-04 10:49:16

+1

爲什麼?爲什麼要創建所有額外的工作?規則#1:單獨留下生成的代碼。 – EJP 2010-08-04 10:58:24