地图文档。开始时的条目状态:
公共静态接口Map.Entry<K、 V>
但如果我查看OpenJDK存储库中的源文件Map.java,Map接口似乎将Entry简单地声明为:
接口条目<K、 V>
我很困惑为什么修饰符"公共静态";缺少。如果实际源代码省略了这些修饰符,Map.Entry如何成为Map的公共静态成员?
public
和static
修饰符隐含在源代码中,因为Entry
接口是Map
接口的成员。参见JLS部分:
§6.6.1
所有缺少访问修饰符的接口成员都是隐式公共的。
§9.1.1.3
嵌套接口是隐式静态的。也就是说,每个成员接口和本地接口都是静态的。允许成员接口的声明冗余地指定静态修饰符(§9.5(,但不允许本地接口的声明(§14.3(
将public static
添加到接口声明中是非常好的(不会产生错误(。
毕竟,文档的目的是通知人员,而不是100%准确地反映源代码中的内容。与其让读者通过访问JLS来弄清楚接口隐含地有什么修饰符,不如方便地在标头后的第一行中说明它。