2014-03-26 49 views
0

我遇到了一個相當奇怪的場景,至今我已經設法找出不同版本的Eclipse。我想知道是否有人能告訴我究竟是什麼問題(Juno不支持,開普勒提供了更好的支持等)。我使用jsr305進行註釋。@Junn Juno和Kepler的行爲不同?

我有以下示例代碼來複制該行爲。

@Nonnull 
String test = null; 

這不應該工作,因爲我已經明確表示使用註釋,測試不應該爲空。它在開普勒捕獲它,但在朱諾它沒有。所有的設置都是一樣的,這僅僅是版本與jsr305不兼容的情況嗎?

+0

您是否在這兩種環境中使用相同版本的jsr305?那個版本是什麼? –

+0

是的,相同的版本,不幸的是我不確定。清單文件不包含版本。 – Otra

+0

我只能猜測,Java編譯器首選項中的編譯器選項不同或設置不同 –

回答

0

Juno不支持標記字段爲@Nullable,但開普勒做。 看到這些有趣的帖子:

我喜歡用FindBugs的Maven插件堅持,因爲我不依賴於IDE,可以在實施策略建立時間。我主要使用這些註解:

import javax.annotation.CheckForNull; 
import javax.annotation.CheckReturnValue; 
import javax.annotation.Nonnull; 

我也許應該看看IDE支持太多,但那樣只會是一個「額外」。