簡體   English   中英

Intellij 在標准 Java 類上顯示非標准注釋?

[英]Intellij showing nonstandard annotations on standard Java classes?

在使用 Intellij Idea 快速文檔功能( CTRL + Q )時,有時我會發現標准 JDK 類被非標准注釋所注釋。 當一個CTRL鍵單擊帶注釋的功能以查看其源代碼時,這些注釋不存在。 例如,下圖顯示了要使用@org.jetbrains.annotations.NotNull注釋的java.util.Collections.unmodifiableList參數:

用於 java.util.Collections.unmodifiableList 的 QuickDoc

為什么標准類會被第三方注解修飾?

這是不一致的,例如java.util.collections checkedNavigableSet注釋不同,沒有給出@NotNull包:

CheckedNavigableSet 的 QuickDoc

這種現象並不妨礙發展,我只是好奇 QuickDoc 出現這種行為的原因。 也許 Intellij 團隊為了方便起見放在那里的那些注釋?

根據此處的文檔,Idea 的檢查機制使用了注釋,因此語句Collections.unmodifiableList(null)標有非空合同違規警告。 正如您所注意到的,原始代碼中不存在此注釋,因此我猜它們是添加到 JDK 和編輯器之間的某個位置的。 目前尚不清楚為什么它會出現在包裝中或不帶包裝中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM