对于一个给定的方法
public boolean equal(Object obj1, Object obj2) {
return false;
}
其比较规则为:如果两个对象的类型一致(即它们位于继承树的同一分枝上),并且内容一致,则返回true,否则返回false.那么该如何实现这个方法呢?我觉得最难的是如何判断两个对象是否位于继承树的同一分枝上.equals对象继承类boolean
public boolean equal(Object obj1, Object obj2) {
return false;
}
其比较规则为:如果两个对象的类型一致(即它们位于继承树的同一分枝上),并且内容一致,则返回true,否则返回false.那么该如何实现这个方法呢?我觉得最难的是如何判断两个对象是否位于继承树的同一分枝上.equals对象继承类boolean
2 instanceof 或者比较getClass()
3 比较所有字段
public class Hello {
private int sn; @Override
public boolean equals(Object other) {
// [[1]]
if (other == null) {
return false;
} // [[2]]
if (this.getClass() != other.getClass()) {
return false;
} // [[3]]
Hello o = (Hello) other;
return this.sn == o.sn;
} public static void main(String[] args) {
}
}
判断
public boolean equals(Object other) {
if (other == null) {
return false;
}
if (this.getClass() != other.getClass()) {
return false;
}
return EqualsBuilder.reflectionEquals(this, other, false);
}