這可能很明顯,但我認爲你的問題是與Eclipse(特別是FindBugs插件),而不是FindBugs本身。
您可能會考慮從命令行運行FindBugs以消除任何Eclipse問題,並確保FindBugs自行正確運行。瞭解如何在獨立模式下運行FindBugs將在您的IDE配置不正確時爲您提供回退。
我在一個名爲FindBugsAnnotationsTest.java
文件保存你的源代碼,添加進口List
,ArrayList
和CheckForNull
,編譯和運行FindBugs的1.3.9。 FindBugs的產生有關空值幾個警告:
M D NP: Possible null pointer dereference in FindBugsAnnotationsTest.shouldGetFindbugsWarning() due to return value of called method Dereferenced at FindBugsAnnotationsTest.java:[line 18]
M C UwF: Unwritten field: FindBugsAnnotationsTest.canBeNull At FindBugsAnnotationsTest.java:[line 12]
M C NP: Read of unwritten field canBeNull in FindBugsAnnotationsTest.shouldGetFindbugsWarning() At FindBugsAnnotationsTest.java:[line 16]
Warnings generated: 3
這是我加入的FindBugsAnnotationsTest.java
頂部的進口:
import java.util.ArrayList;
import java.util.List;
import edu.umd.cs.findbugs.annotations.CheckForNull;
命令:
javac -d . -classpath ${FINDBUGS_HOME}/lib/findbugs.jar FindBugsAnnotationsTest.java
${FINDBUGS_HOME}/bin/findbugs FindBugsAnnotationsTest.class
凡${FINDBUGS_HOME}
是其中的目錄Findbugs 1.3.9已安裝。 javac
被假定爲路徑上。
注:我使用的findbugs.jar
代替annotations.jar
和jsr305.jar
,但我得到這個命令相同的結果:
javac -d . -classpath ${FINDBUGS_HOME}/lib/annotations.jar:${FINDBUGS_HOME}/lib/jsr305.jar FindBugsAnnotationsTest.java