栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

当我们实现一个接口时,我们注入(或接受)该接口定义的合同。

Equalable
Hashable
是两个不同的合同。但是,如果我们仔细观察,就会发现它们彼此依赖,这意味着它们是的一部分
singleinterface
,类似
EqualableAndHashable

现在显而易见的问题是,它们是否应该成为此新

EqualableAndHashable
界面的一部分
Object

让我们找出答案。我们

==
(等于运算符)检查两个对象的相等性。
==
运算符确认两个不同图元/对象的值/引用是否相等。但这并不总是可能仅通过与
==
操作员确认来回答。

现在的问题是,是否应该通过接口或对象类的一部分来注入相等性(也就是契约)?

如果我们看一看,我们不能只说:

TypeX
不保证平等合同。

如果某些对象类型提供相等性而某些对象不提供相等性,则将变得混乱。这意味着of的对象

TypeX
必须遵守平等契约,这对于所有其他对象类型也是如此。因此,它绝不能从接口注入相等性,因为缺省情况下,相等性应该是任何对象的合同的一部分,否则它将造成混乱。

因此,我们需要Objects提出的实现

equals
。但是它不能仅实现
equals
方法,还需要实现
hashpre
方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/435192.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号