为什么在Collection中声明的方法也在List Interface中重复?

时间:2013-12-18 09:38:06

标签: java list

为什么在java.util.Collection中声明的所有方法都在java.util.List接口中重复,是否有任何特定原因(除了下面提到的内容之外)?

根据java.util.List Api:

  

List接口在迭代器,add,remove,equals和hashCode方法的契约上放置了除Collection接口中指定的规则之外的其他规定。为方便起见,此处还包含其他继承方法的声明。

仅仅为了附加文档(规定),重复这样的方法声明是否合适?

2 个答案:

答案 0 :(得分:2)

  

仅仅为了附加文档(规定),重复这样的方法声明是否合适?

你会怎么做?有什么缺点?

是的,这确实是最简单的方法。

答案 1 :(得分:1)

  

列表界面提供了额外的规定   在集合界面中指定的那些   迭代器的合同,添加,删除,   equals和hashCode方法。声明   为方便起见,此处还包括其他继承的方法。

例如,列表界面中的添加方法的Javadoc读取到:

  

将指定的元素追加到此列表的末尾(可选   操作)。

     

支持此操作的列表可能会对内容施加限制   元素可以添加到此列表中。特别是,一些列表会   拒绝添加null元素,其他人会对其施加限制   可以添加的元素类型。列表类应该清楚   在他们的文档中指定对可能的元素的任何限制   加入。

添加方法内的添加方法的Javadoc读取到:

  

确保此集合包含指定的元素(可选)   操作)。如果此集合由于更改而返回,则返回true   呼叫。 (如果此集合不允许重复,则返回false   已包含指定的元素。)

     

支持此操作的集合可能会对内容施加限制   元素可以添加到此集合中。特别是一些   集合将拒绝添加null元素,其他人将强加   对可添加的元素类型的限制。采集   课程应在其文件中明确规定任何限制   可以添加哪些元素。

     

如果集合因任何原因拒绝添加特定元素   除了它已经包含元素,它必须抛出一个   异常(而不是返回false)。这保留了不变量   一个集合在此之后总是包含指定的元素   呼叫返回。