当我使用eclipse自动生成hashCode
和equals
时,生成的代码包含对外部类型的检查:
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Inner other = (Inner) obj;
if (!getOuterType().equals(other.getOuterType()))
return false;
if (innerField == null) {
if (other.innerField != null)
return false;
} else if (!innerField.equals(other.innerField))
return false;
return true;
}
private Outer getOuterType() {
return Outer.this;
}
真的有必要吗?是不是getClass() != obj.getClass()
足够了?