[英]How is Map.Entry really declared?
Map.Entry 的文档在开头说明:
公共 static 接口 Map.Entry<K,V>
但是,如果我查看 OpenJDK 存储库中的源文件 Map.java ,则 Map 接口似乎将 Entry 简单地声明为:
接口入口<K, V>
我对为什么缺少修饰符“public static”感到困惑。 如果实际源代码省略了这些修饰符,Map.Entry 如何成为 Map 的公共 static 成员?
public
和static
修饰符隐含在源代码中,因为Entry
接口是Map
接口的成员。 请参阅 JLS 部分:
缺少访问修饰符的接口的所有成员都是隐式公共的。
嵌套接口隐含为 static。 即每个成员接口和本地接口都是static。 允许成员接口的声明冗余地指定 static 修饰符(§9.5),但不允许声明本地接口(§14.3)。
将public static
添加到接口声明中是非常好的(不会产生错误)。
毕竟,文档的目的是告知人们,而不是 100% 准确地反映源代码中的内容。 与其让读者通过转到 JLS 来找出接口隐含的修饰符,不如在 header 之后的第一行中方便地说明它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.