java的equal方法

原创
2017/01/12 18:53
阅读数 112

要求

  • 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对象换为其他类型.

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部