PMD和FindBugs冲突

时间:2017-06-02 09:15:27

标签: java findbugs pmd

我们有一个子类,我们不需要任何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 :重写方法只调用超类中定义的相同方法。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

删除方法,使用findbugs-exclude-filter.xml或SuppressWarnings / SuppressFBWarnings忽略FindBugs错误。