2014-03-28 80 views
2

我已經註釋了返回null@javax.annotations.Nonnull註釋的方法,但FindBugs不會在其上生成任何警告。如果使用@Nonnull註釋,沒有FindBugs空值返回值警告

@Nonnull 
public EventBuilder forCreateEvent() { 
    return null; 
} 

也許我誤解的@Nonnull的意思,但我認爲這意味着方法不會返回null

附加註釋:請參考下面的問題的原因我的意見。

+3

FindBugs的查找'edu.umd.cs.findbugs.annotations.NonNull'如果我沒有記錯。 – assylias

+1

夥計們,這是我愚蠢的錯誤。在我舊的排除過濾器配置中,我排除了所有與空指針相關的檢查。 – Oliver

+1

@OliverF。請發佈一個答案,詳細說明這是「試點錯誤」,幷包括導致排除的配置。 –

回答

1

正如assylias說,可能是其矛盾的。嘗試將其更改爲

@edu.umd.cs.findbugs.annotations.NonNull 
public EventBuilder forCreateEvent() { 
    return null; 
} 
2

是FindBugs的理解都記錄here註解。如您所見,javax.annotations.*註釋未列出。

你要麼需要改變你的代碼中使用批註FindBugs的支持,或創建的FindBugs自己的定製版本識別您正在使用在代碼中的註釋。

(注意,沒有對FindBugs的2問題追蹤相關feature request

+1

FindBugs *絕對*理解'javax.annotation.Nonnull'。我們已經使用了一年多了。鏈接頁面聲明'jsr305'必須位於類路徑中。我認爲他們只是列出他們的自定義註釋。 –

相關問題