繁体   English   中英

Map.Entry 是如何真正声明的?

[英]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 成员?

publicstatic修饰符隐含在源代码中,因为Entry接口是Map接口的成员。 请参阅 JLS 部分:

§6.6.1

缺少访问修饰符的接口的所有成员都是隐式公共的。

§9.1.1.3

嵌套接口隐含为 static。 即每个成员接口和本地接口都是static。 允许成员接口的声明冗余地指定 static 修饰符(§9.5),但不允许声明本地接口(§14.3)。

public static添加到接口声明中是非常好的(不会产生错误)。

毕竟,文档的目的是告知人们,而不是 100% 准确地反映源代码中的内容。 与其让读者通过转到 JLS 来找出接口隐含的修饰符,不如在 header 之后的第一行中方便地说明它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM