Java文档说了以下有关Set接口的内容,有人可以帮助我了解如何强制执行这些附加规定吗?我的意思是您不能抛出超级接口(在本例中为Collection)未抛出的额外异常。


  Set接口可放置其他
  规定,超越继承的规定
  从“收藏”界面中
  所有建设者的合同
  加法的合约等于
  hashCode方法。


谢谢

-阿比迪

最佳答案

规定不是强制性的,它们只是添加到合同中。

幸运的是,Collection(和Object)中方法的协定足够宽松,以至于实现可以实现CollectionObjectSet的协定,而不会违反任何一个。

例如,当尝试添加其中已存在的对象时,add方法不会引发异常,它只会返回false(而不是true)。 Collection.add已允许这样做:


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

关于java - Java集合规定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5450072/

10-11 02:38