为什么Java 6会覆盖SortedMap中的keySet(),entrySet()和values()接口

时间:2015-01-21 06:14:52

标签: 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被覆盖了。谁能告诉我做出这样改变的目的是什么?

1 个答案:

答案 0 :(得分:5)

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

为什么要在子接口中声明方法的其他原因是能够限制返回类型或添加注释,但在这种情况下他们没有这样做,所以这不是原因。

Javadoc是界面合同的一部分。在Java 6中,Sun / Oracle认为有必要在SortedMap上澄清这些方法的行为,这进一步限制了它们在Map中的行为。

例如,在SortedMap中,keySet的Javadoc说:

  

set的迭代器按升序返回键。

Map上,相同的方法没有一般的描述,允许地图以他们喜欢的任何顺序返回键集; SortedMap进一步限制了自己。