java的equal方法

本文详细介绍了Java中equals方法的五大要求:自反性、对称性、传递性、一致性和非空性,并提供了equals方法的具体实现步骤及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求

  • 1.自反性 当x不为null时,x.equal(x)为true

  • 2.对称性 x.equal(y)位true,那么y.equal(x)为true;

  • 3.传递性 x.equal(y)为true,x.equal(z)为true,那么y.equal(z)为true.

  • 4.一致性 如果两个对象相等,他们就必须始终保持相等

  • 5.非空性

实现与优化

  • 1.使用==操作符检查是否相等
  • 2.使用instanceof操作符来检查"参数是否为正确类型"
  • 3.把参数转化为正确的类型.
  • 4.对于该类中的每个"关键"域,检查参数中的域是否与该对象中对应的域相匹配.
  • 5.编写完成后,查看方法的对称性,一致性,传递性

告诫

  • 覆盖equals是要覆盖hasCode方法

  • 不要企图让equals方法过于智能;让equal方法做简单的事情就行

  • 不要将equals申明中的Object对象换为其他类型.

转载于:https://my.oschina.net/u/1590027/blog/823899

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值