我正在使用Java 1.7,Eclipse 3.7和來自市場的FindBugs插件。這個例子是像你一樣的天堂:Findbugs給出了「System.out的空指針解引用」,爲什麼?
class Application
{
public static void main(String[] args)
{
System.out.println("Bla");
}
}
此消息是不存在的過去和內部實現總是在系統:
public final static PrintStream out = null;
所以FindBugs的是對的,但做了一些變化使消息現在發生?
不一定,有可能是一個塊的地方,被分配'out'的東西(一個'static'塊)。基於文檔,FindBugs仍然是實驗性的,可能無法正常工作。這聽起來像findbugs中的一個錯誤...如果你通過標準的JVM運行它,Ii會假設代碼有效? –
當然可以。我認爲這與切換到Java 7有關,因爲初始化不再是靜態的(我認爲它是,我現在沒有Java 6版本)。 –