当前位置: 首页 > 知识库问答 >
问题:

PMD 和 FindBug 冲突

夏侯阳
2023-03-14

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

但是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 给出了错误 - 无用的覆盖方法:覆盖方法仅调用超类中定义的相同方法。

我该如何解决这个问题?

共有1个答案

安奇
2023-03-14

移除该方法,使用FindBugs排除过滤器忽略FindBugs错误。xml或SuppressWarnings/SuppressFBWarnings。

 类似资料:
  • 如何在sonar Qube中导入FindBug/PMD(XML格式)的配置文件?我知道方法,但是在哪里可以找到要导入的XML文件呢?

  • 我在eclipse Neon中使用的SonarLint版本为3.1.0。SonarQube版本为5.6.6。 在分析项目的问题时,注意到它没有显示外部插件的问题(PMD、FindBug、CheckStyle)。 从Sonar Lint与服务器规则不同步的链接中,我了解到Sonar Lint将不支持外部插件。在未来发布的SonarLint版本中是否有支持外部插件的想法?

  • 我使用的是sonarqube community Version6.7.2,我记得,SonarJava插件的目标是用squid规则取代(至少大部分是)Findbugs和PMD规则。当有一个合适的squid规则替换时,这些提供者提供了一个关于规则的信息,但现在我无法找到它,例如,来自findbugs的一些规则与我从squid中知道的其他规则非常相似。 Sonarqube建议只使用squid规则?这些

  • PMD

    PMD是一款采用BSD协议发布的Java程序代码检查工具。该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。该软件功能强大,扫描效率高,是Java程序员debug的好帮手。 PMD支持的编辑器包括: JDeveloper、Eclipse、JEdit、JBuilder、BlueJ、CodeGuide、NetBeans/Sun Java Studio E

  • 问题内容: 比较PMD和CheckStyle有一个问题。但是,我找不到关于PMD和FindBugs之间差异/相似性的详尽分类。我相信一个关键的区别是PMD适用于源代码,而FindBugs适用于编译的字节码文件。但是就功能而言,这应该是一个选择,还是两者相辅相成? 问题答案: 我同时使用。我认为他们是相辅相成的。 正如您所说,PMD在源代码上工作,因此会发现诸如以下问题:违反命名约定,缺少花括号,放

  • 我需要在Eclipse中为一个开发项目使用PMD、Findbugs和Checkstyle。Java6足以使用这些工具吗?或者我需要java 7?