码迷,mamicode.com
首页 > 其他好文 > 详细

equals方法

时间:2018-12-01 21:54:13      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:The   get   类型   核心技术   this   比较   ceo   子类   否则   

  编写equals方法的建议(《java核心技术卷1》第10版 P169)

  • 显示参数命名为otherObject,稍后需要将它转换成另一个叫做other的变量。
  • 检测this与otherObject是否引用同一个对象;
  • 检测otherObject是否为null,如果为null,返回false。
  • 比较this与otherObject是否属于同一个类。如果equals的语义在每个子类中有所改变,就使用getClass检测: 
  if(getClass()!=otherObject.getClass()) return false;

   如果所有的子类都拥有统一的语义,就使用instanceof检测:  

if(!(otherObject instanceof ClassName)) return false
  • 将otherObject转换为相应的类类型变量:
Class other=(ClassName)otherObject;
  • 使用==比较基本类型域,使用equals比较对象域。如果所有的域都匹配,就返回true;否则返回false。
return field1==other.field1&&Object.euqals(field2,other.field2)&&..;

  

 

equals方法

标签:The   get   类型   核心技术   this   比较   ceo   子类   否则   

原文地址:https://www.cnblogs.com/comicfuji/p/10050856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!