java - 为什么Java 6重写SortedMap中的keySet()、entrySet()和values()接口(interface)

标签 java dictionary sortedmap keyset entryset

Java 5 http://docs.oracle.com/javase/1.5.0/docs/api/java/util/SortedMap.html

Java 6 https://docs.oracle.com/javase/6/docs/api/java/util/SortedMap.html

正如你所见,从 Java 6 开始,这三个 api 被覆盖。谁能告诉我进行这样的更改的目的是什么?

最佳答案

必须重写这些方法才能拥有自己的 Javadoc。

在子接口(interface)中声明方法的其他原因是能够限制返回类型或添加注释,但在本例中他们没有这样做,所以这不是原因。

Javadoc 是接口(interface)契约的一部分。在 Java 6 中,Sun/Oracle 认为有必要澄清这些方法在 SortedMap 上的行为,这进一步限制了它们在 Map 中的行为。

例如,在 SortedMap 中,keySet 的 Javadoc 表示:

The set's iterator returns the keys in ascending order.

Map 上,相同的方法没有此描述,一般情况下,Map 允许按其喜欢的任何顺序返回键集; SortedMap 进一步限制了自己。

关于java - 为什么Java 6重写SortedMap中的keySet()、entrySet()和values()接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28060736/

相关文章:

java - hibernate 5 : sessionFactory is null

java - Android Studio socket服务端与客户端收发数据

带有@property的Python对象来听写

scala - 如何在scala中创建排序 map ?

java 。按值排序的 map

java - 创建 Kafka 主题 :- replication factor larger than available brokers 时出错

java - 汇编 : Stateful Transformation

python - 如何将字典与相同的键结合起来?

收集满足给定条件的numpy数组元素的Pythonic方法

Java TreeMap 比较器