繁体   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