PMD和FindBugs有什么区别?

比较PMD和CheckStyle有一个问题。但是,我找不到关于PMD和FindBugs之间差异/相似性的详尽分类。我相信一个关键的区别是PMD适用于源代码,而FindBugs适用于编译的字节码文件。但是就功能而言,这应该是一个选择,还是两者相辅相成?

回答:

我同时使用。我认为他们是相辅相成的。

正如您所说,PMD在源代码上工作,因此会发现诸如以下问题:违反命名约定,缺少花括号,放错位置的空检查,长参数列表,不必要的构造函数,缺少换行符的中断等。PMD还向您介绍了Cyclomatic复杂的代码,我觉得非常有帮助的(FindBugs的不告诉你的圈复杂度)。

FindBugs适用于字节码。以下是一些问题,FindBugs会发现哪些PMD不会:PMDS()方法在子类型上失败,克隆方法可能返回null,布尔值的引用比较,不可能的转换,32位int偏移量不在0-31范围内,包含自身的集合,equals方法始终返回true,无限循环等。

通常每个人都会发现不同的问题。同时使用。这些工具教会了我很多关于如何编写好的Java代码的知识。

以上是 PMD和FindBugs有什么区别? 的全部内容, 来源链接: utcz.com/qa/414829.html

回到顶部