为什么Entry接口定义了equals和hashCode之类的方法?

rbhawsar

我看到接口java.util.Map.Entry具有方法:

boolean equals(Object o);
int hashCode();

Entry当从Object继承相同的方法时,为什么上述方法是接口的一部分

谢谢,拉胡尔

托马斯·原告

有三点要考虑:

  • 技术角度来看,这不是必需的:每个类都从该类继承这两个方法Object从技术上讲,将这两种方法添加到接口不会增加任何内容

  • 实现的角度来看:这些定义不会“覆盖”类的定义Object因此,您无需编写自己的实现即可实现此接口。

  • 文档的角度:对单证Map.Entry.equals()Map.Entry.hashCode()有什么这些方法应在接口的任何实现做非常具体的要求。

您可以将关于这两种方法的要求的文档放到该接口的常规文档中,但这会使查找(阅读)该文档变得更加困难。

理想情况下,查找接口的人会看到它声明了这两个方法,感到好奇并阅读了这两个方法的接口文档,然后提示了他应该怎么做才能正确地将这些方法实现到实现接口的类中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在对象中定义equals和hashCode?

为什么UserRole实现Serializable并覆盖equals()和hashcode()方法

为什么需要覆盖Java中的equals和hashCode方法?

hashcode()和equals()方法

为什么要重写equals()和使用设置了许多价值关联hashCode()方法?

哪个内置的Java类不会覆盖equals和hashcode方法?为什么?

为什么接口引用显示toString(),hashCode()和其他Object的方法

为什么要在Java中同时覆盖equals()和hashCode()?

接口中的toString(),equals()和hashCode()

为什么hashCode()和getClass()本机方法?

什么时候需要覆盖equals和hashcode方法?

为什么我们在 HashMap 和 HashSet 中使用 equals() 方法而不实现比较器接口?

为什么C ++应用程序无法创建php,html和css之类的接口?

Java Hashcode和Equals for Java 8功能接口对象

为什么在添加到HashSet和hashCode匹配项时未调用equals()?

实现hashCode和equals方法,但类是最终的

Groovy:生成equals和hashCode方法

如何实现hashCode和equals方法

HashMap 忽略覆盖的 hashCode 和 equals 方法

什么是HashCodeBuilder和EqualsBuilder,它们用于重写hashcode()和equals()方法?

当我覆盖equals()方法时,为什么要覆盖hashCode()?

重写持久实体的hashCode()和equals()方法的正确方法是什么?

在继承层次结构中实现健壮的equals()和hashCode()方法的正确方法是什么?

为什么必须在类而不是接口中定义方法?

为什么不能在Java接口中定义静态方法?

为什么Channel接口重新定义close()方法?

为什么在Set接口上没有定义replace()方法?

为什么ICollection <>。Contains会忽略我的重写的Equals和IEquatable <>接口?

为什么在String类中将equals方法定义为equals(Object anObject)而不将其定义为equals(String anObject)?