Intellij在标准Java类上显示非标准注释?

Intellij在标准Java类上显示非标准注释?,java,intellij-idea,annotations,Java,Intellij Idea,Annotations,在使用Intellij Idea快速文档功能(CTRL+Q)时,有时我会发现标准JDK类会被非标准注释注释。当按CTRL键单击带注释的功能以查看其源代码时,这些注释不存在。例如,下图显示了要用@org.jetbrains.annotations.NotNull注释的java.util.Collections.unmodifiableList的参数: 为什么要用第三方注释装饰标准类 这是不一致的,例如,java.util.collections中的checkedNavigableSet以不同方式

在使用Intellij Idea快速文档功能(CTRL+Q)时,有时我会发现标准JDK类会被非标准注释注释。当按CTRL键单击带注释的功能以查看其源代码时,这些注释不存在。例如,下图显示了要用
@org.jetbrains.annotations.NotNull
注释的
java.util.Collections.unmodifiableList
的参数:

为什么要用第三方注释装饰标准类

这是不一致的,例如,
java.util.collections
中的
checkedNavigableSet
以不同方式注释,没有为
@NotNull
提供任何包:

这种现象并不妨碍发展,我只是好奇QuickDoc如此行事的原因。也许是Intellij团队为了方便而放在那里的注释

根据文档,Idea的检查机制使用注释,因此语句
集合。不可修改列表(null)
标记非空合同违反警告。正如您所注意到的,这些注释并没有出现在原始代码中,所以我猜它们是在JDK和Editor之间的某个中间位置添加的。现在还不清楚为什么会有包装或没有包装