equals方法
编写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)&&..;

浙公网安备 33010602011771号