手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

equals方法的编写建议

[日期:2018-04-15] 来源:Linux社区  作者:LittleTreasureBox [字体: ]

1.显示参数命名为 otherObject ,稍后需要将其转换成另一个叫做 other 的变量。

2.检测 this 与 otherObject 是否引用同一个对象:

//这条语句只是一个优化。计算这个等式比一个一个地比较类中的域所付出的代价要小的多。
if (this == otherObject) return true;

3.检测otherObject是否为null,如果为null,则返回false。

4.比较this与 otherObject 是否属于同一个类:
 如果equals的语义在每个子类中有所改变,就用getClass检测; 如果所有子类都有统一的语义,就用instanceof检测:

//getClass
if(getClass != otherObject.getClass())
return false;

//instanceof
if(!(otherObject instanceof ClassName))
return false;

5.将otherObject转换成相应的类的类型变量:ClassName other = (ClassName)otherObject;

6.现在开始对所有需要比较的域进行比较了。使用==比较基本类型域,使用equals比较对象域。如果所有的域都匹配,就返回ture,否则返回false。

return field1 == other.field1
&& Objects.equals(field2,other.field2)
&&···

如果在子类中重新定义equals,就要在其中包含调用super.equals(other);

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-04/151899.htm

linux
相关资讯       equals  equals方法 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款