我们有一个子类,我们不需要任何equals和hashcode比较。它在超级处理。
但是FindBugs给出了错误 - EQ_DOESNT_OVERRIDE_EQUALS :这个类扩展了一个定义equals方法的类并添加了字段,但是没有定义一个equals方法本身。因此,此类的实例上的相等性将忽略子类的标识和添加的字段。确保这是预期的,并且您不需要覆盖equals方法。即使您不需要覆盖equals方法,也可以考虑覆盖它,以便记录子类的equals方法只返回调用super.equals(o)
的结果这一事实。
当我们通过调用super
来完成覆盖:
@Override
public boolean equals(Object o) {
return super.equals(o);
}
@Override
public int hashCode() {
return super.hashCode();
}
现在PMD正在给出错误 - UselessOverridingMethod :重写方法只调用超类中定义的相同方法。
我该如何解决这个问题?
答案 0 :(得分:4)
删除方法,使用findbugs-exclude-filter.xml或SuppressWarnings / SuppressFBWarnings忽略FindBugs错误。