我应该比较内部类的equals实现中的外部类型

时间:2015-05-22 07:39:52

标签: java comparison inner-classes

当我使用eclipse自动生成hashCodeequals时,生成的代码包含对外部类型的检查:

@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()足够了?

0 个答案:

没有答案