PMD是一款采用BSD协议发布的Java程序代码检查工具。该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。该软件功能强大,扫描效率高,是Java程序员debug的好帮手。
与其他分析工具不同的是,PMD通过静态分析获知代码错误。也就是说在不运行Java程序的情况下,报告错误。PMD附带了许多可以直接使用的规则,利用这些规则可以找出Java源程序的许多问题。常见的类型如下:
① 潜在的bug:空的try/catch/finally/switch语句
② 未使用的代码:未使用的局部变量、参数、私有方法等
③ 可选的代码:String/StringBuffer的滥用
④ 复杂的表达式:不必须的if语句、可以使用while循环完成的for循环
⑤ 重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs
⑥ 循环体创建新对象:尽量不要再for或while循环体内实例化一个新对象
⑦ 资源关闭:Connect,Result,Statement等使用之后确保关闭掉
此外,用户还可以自己定义规则。检查Java代码是否符合某些特定的编码规范。例如,你可以编写一个规则,要求PMD找出所有创建Thread和Socket对象的操作。