2017-01-10 65 views
2

雖然使用Intellij Idea快速文檔功能(CTRL + Q)有時我會發現標準的JDK類將被非標準註釋註釋。當一個CTRL - 點擊註釋的功能來查看其源代碼時,那些註釋不存在。例如,下面的圖片顯示的java.util.Collections.unmodifiableList參數與@org.jetbrains.annotations.NotNull進行註釋:Intellij在標準Java類上顯示非標準註釋?

QuickDoc for java.util.Collections.unmodifiableList

爲什麼一個標準的類與第三方註解裝飾?

這並不一致,例如,checkedNavigableSetjava.util.collections被標註方式不同,沒有包@NotNull給出:

QuickDoc for checkedNavigableSet

的現象並不排除發展,我只是好奇,到QuickDoc的原因就是這樣。也許Intellij團隊爲了方便而將這些註釋放在那裏?

回答

2

根據來自here的文檔,Idea的檢測機制使用了註釋,因此在語句Collections.unmodifiableList(null)中標註了非空違反合同的警告。正如您注意到的,這些註釋並未出現在原始代碼中,所以我猜想它們被添加到JDK和編輯器之間的某個中間位置。目前還不清楚爲什麼它出現在包裝中或沒有包裝。