2012-02-13 91 views
8

看看list of annotations in FindBugs 2.0,我發現它們中的很多已被棄用。FindBugs 2.0中的棄用註釋

其中一些(@CheckForNull,@NonNull等)已被棄用,因爲它們具有等效的JSR-305註釋。很好終於解決了使用哪組註釋的困境。

但是一些FindBugs特定的註釋(如@DefaultAnnotation@DefaultAnnotationForFields)也被棄用,我找不到任何解釋。我試圖遷移一個大量使用這些註釋的代碼庫,而且我有點卡住了。

我看到JSR-305有@ParametersAreNonnullByDefault,我可以使用它來替換@DefaultAnnotationForParameters的一些實例,但這不會涵蓋所有情況。

我在這裏錯過了一些大事嗎?我是否應該使用某種設置文件或其他內容,而不是註釋?

回答

8

(注:見Should annotations in jar305.jar be preferred over similar annotations in annotation.jar for FindBugs?一篇相關文章)

從筆者的PDF(here),第51頁:

JSR-305將只定義ParametersAreNonnullByDefault, 但更多的可以被定義外JSR-305

•並且可以通過靜態分析 該解釋JSR-305註解來解釋

...所以基本上你可以自己定義它,並給它和你要替換的名稱相同的名稱,它應該最終工作正常,因爲FindBugs只能按名稱運行註釋(並且可能更喜歡JSR- 305註釋,可能是由於特別的棄用)。

例如,here@ParametersAreNonnullByDefault的來源。

欲瞭解更多信息,你可能需要給JSR-305和FindBugs的作者發電子郵件:Bill Pugh(here是他的網站)。此外,該問題已添加到Sourceforge bug跟蹤器(here)。

+0

感謝您的PDF鏈接!我想知道的一切都在那裏。 – 2012-02-13 08:24:59

+0

+1000。對於這個答案,我無法感謝你。 – Gili 2012-11-23 01:53:27

相關問題