PMD 和 FindBugs 冲突

PMD and FindBugs conflict

我们有一个子class,我们不需要任何等号和哈希码比较。它在 super class 中处理。

但是 FindBugs 给出了错误- EQ_DOESNT_OVERRIDE_EQUALS:这个 class 扩展了一个 class,它定义了一个 equals 方法并添加了字段,但是没有' 自己定义一个 equals 方法。因此,此 class 实例的相等性将忽略 subclass 的身份和添加的字段。确保这是预期的,并且您不需要重写 equals 方法。即使您不需要覆盖 equals 方法,也可以考虑覆盖它以记录 subclass 的 equals 方法只是 return 调用 super.equals(o).[ 的结果这一事实。 =13=]

当我们刚刚通过调用 super 进行覆盖时:

@Override
public boolean equals(Object o) {
    return super.equals(o);
}

@Override
public int hashCode() {
    return super.hashCode();
}

现在 PMD 给出错误 - UselessOverridingMethod:重写方法仅调用在 superclass.

中定义的相同方法

我该如何解决这个问题?

删除该方法,使用 findbugs-exclude-filter.xml 或 SuppressWarnings/SuppressFBWarnings.

忽略 FindBugs 错误