【发布时间】:2017-04-26 08:53:40
【问题描述】:
官方Java Language Specification只有一个,所有Java实现都必须遵守。
API 文档怎么样:是否所有 Java 实现都需要遵守 this version 或者实现可以不同地定义某些方法和类的行为,只要它与 JLS 兼容?
让我们举一个具体的例子:Java 实现是否可以包含不接受null 元素的HashMap?
【问题讨论】:
-
是的,所有 Java SE API 也是规范的一部分。所有实现都必须符合 API 的所有 Javadocs。
-
@ZhekaKozlov 你有来源或参考吗?
-
JLS 定义了 Java 程序在 VM 上的行为方式。 HashMap 不是 VM 的一部分(与 Object 和 Thread 相反),所以 JLS 甚至没有触及它。
-
@assyias 不幸的是,我找不到明确的句子说明它。但我认为,如果您的 Java 平台实现具有不同的 HashMap 行为,那么它将无法通过 Java 兼容性测试(JCK)。