public class EqualsTest {
@Override
public boolean equals(Object otherObject) {
if(this==otherObject)//检测this与otherObject是否引用同一个对象
return true;
if(otherObject==null)//检测otherObject是否为null,这项检测很有必要
return false;
if(getClass()!=otherObject.getClass())//比较this和otherObject是否属于同一个类,如果equals的语义在每个子类中有所改变就是用getClass()检测
return false;
/*当所有的子类都拥有统一的语义,就是用instanceof检测*/
if(!(otherObject instanceof ClassName))
return false;
ClassName other=(ClassName)otherObject;
//接着对所有的域进行比较,如果所有的域都匹配就返回true,否则返回false
return field1=other.field1&&filed2.equals(other.field2)&&..;
}
}