我曾嘗試註釋字段與@NotNull,@Nonnull等都不在IntelliJ IDEA的工作
- org.checkerframework.checker.nullness.qual.NonNull
- org.jetbrains.annotations .NotNull
- javax.annotation.Nonnull
而且在所有的情況下,分配一個空它不會產生來自的IntelliJ 2016.2投訴。
public class GreetingController {
@NotNull Integer x = 3;
public void foo() { x = null; }
}
根據IntelliJ所有編譯好。
This page from IntelliJ明確指出「IntelliJ IDEA即時突出顯示問題」,因此您可以在編輯器中看到檢查結果。「我甚至已將示例代碼(public class TestNullable
)複製到我的編輯器中,並且不會產生任何錯誤。
This other page from IntelliJ聲明您可以更改其響應的註釋。所以我選擇了javax.annotation.Nonnull,並確保它是我在代碼中使用的那個,但仍然沒有運氣。
要清楚,我期望什麼,我應該提供什麼,是編輯器窗口/編譯器警告我的問題(我不是在尋找運行時檢查,NullPointerException已正常工作運行時。)
如果它沒有實時工作,我嘗試了「重建項目」。
我確定這個必須工作,我做錯了什麼?
我已經上傳了一個這裏不起作用的例子:ZIP download。
您是否啓用了[此檢查](http://i.imgur.com/N2BYJFX.png)?你能顯示編輯器的截圖(完整的IDE窗口)嗎?我[無法重現問題](http://i.imgur.com/BO91a3a.png)。可能是錯誤配置的項目,例如源文件根目錄之外的Java文件,禁用了檢查,啓用了節能模式等。共享[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)將有助於很多。 – CrazyCoder
@CrazyCoder我已經在這裏上傳了一個例子:https://www.databasesandlife.com/not-null.zip我是新來的IntelliJ(今天開始),請讓我知道,如果我已經出口不是正確的東西讓你導入項目。我有一個使用'javax.annotation.Nonnull'的源文件。從屏幕截圖中可以看到,檢查已啓用,powersave未啓用,但沒有顯示警告/錯誤。 (另外''org.jetbrains.annotations.NotNull'也是一樣的。) –
正如我從截圖和示例項目中可以看到的那樣,IntelliJ IDEA [向您顯示警告](http://i.imgur.com/ 484n68P.png)。請注意,這些警告通過正在運行的代碼檢查來顯示,並將顯示在編輯器或Analyze |檢查代碼結果。這些警告不會被編譯器顯示。 – CrazyCoder