2017-01-10 30 views
2

Intellij Ideaクイックドキュメンテーション機能(CTRL + Q)を使用していますが、標準JDKクラスが非標準アノテーションによって注釈されることがあります。 CTRL - 注釈付きの機能をクリックしてそのソースコードを表示すると、それらの注釈はそこにありません。たとえば、以下の画像はjava.util.Collections.unmodifiableListの引数が@org.jetbrains.annotations.NotNullで注釈を付けることを示していますIntellijは標準Javaクラスで非標準アノテーションを表示していますか?

QuickDoc for java.util.Collections.unmodifiableList

なぜ標準クラスは、サードパーティの注釈で飾られますか?

QuickDoc for checkedNavigableSet

現象が発展することを妨げるものではない、私はと同じくらい興味があります:

これは、例えば、java.util.collectionsからcheckedNavigableSetが異なり注釈されているとして、@NotNullのためのパッケージが与えられていない、一貫性がありませんQuickDocがそのように動作する原因。利便性のために、Intellijチームがこれらのアノテーションを置いたのかもしれませんか?

答えて

2

hereの文書によると、注釈はIdeaの検査メカニズムで使用されているため、文Collections.unmodifiableList(null)にはnull以外の契約違反の警告が付きます。このアノテーションが元のコードには存在しないことに気づいたので、JDKとエディタの中間に追加されたと思います。パッケージに含まれているかどうかはまだ分かりません。

関連する問題