pmd16个规则集.docx

上传人:牧羊曲112 文档编号:3164034 上传时间:2023-03-11 格式:DOCX 页数:4 大小:38.34KB
返回 下载 相关 举报
pmd16个规则集.docx_第1页
第1页 / 共4页
pmd16个规则集.docx_第2页
第2页 / 共4页
pmd16个规则集.docx_第3页
第3页 / 共4页
pmd16个规则集.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《pmd16个规则集.docx》由会员分享,可在线阅读,更多相关《pmd16个规则集.docx(4页珍藏版)》请在三一办公上搜索。

1、pmd16个规则集1、PMD 包含 16 个规则集,涵盖了 Java 的各种常见问题,其中一些规则要比其他规则更有争议: 基本 规则的一个基本合集,可能大多数开发人员都不认同它: catch 块不该为空,无论何时重写 equals,都要重写 hashCode,等等。 命名 对标准 Java 命令规范的测试:变量名称不应太短;方法名称不应过长;类名称应当以小写字母开头;方法和字段名应当以小写字母开头,等等。 未使用的代码 查找从未使用的私有字段和本地变量、执行不到的语句、从未调用的私有方法,等等。 设计 检查各种设计良好的原则,例如: switch 语句应当有 default 块,应当避免深度嵌

2、套的 if 块,不应当给参数重新赋值,不应该对 double 值进行相等比较。 导入语句 检查 import 语句的问题,比如同一个类被导入两次或者被导入 java.lang 的类中。 JUnit 测试 查找测试用例和测试方法的特定问题,例如方法名称的正确拼写,以及 suite 方法是不是 static 和 public。 字符串 找出处理字符串时遇到的常见问题,例如重复的字符串标量,调用 String 构造函数,对 String 变量调用 toString 方法。 括号 检查 for、 if、 while 和 else 语句是否使用了括号。 代码尺寸 测试过长的方法、有太多方法的类以及重构方

3、面的类似问题。 J avabean 查看 JavaBean 组件是否违反 JavaBean 编码规范,比如没有序列化的 bean 类。 终结函数 因为在 Java 语言中, finalize 方法不是那么普遍,所以它们的使用规则虽然很详细,但是人们对它们相对不是很熟悉。这类检查查找 finalize 方法的各种问题,例如空的终结函数,调用其他方法的 finalize 方法,对 finalize 的显式调用,等等。 克隆 用于 clone 方法的新规则。凡是重写 clone 方法的类都必须实现 Cloneable, clone 方法应该调用 super.clone,而 clone 方法应该声明抛

4、出 CloneNotSupportedException 异常,即使实际上没有抛出异常,也要如此。 耦合 查找类之间过度耦合的迹象,比如导入内容太多;在超类型或接口就已经够用的时候使用子类的类型;类中的字段、变量和返回类型过多等。 严格的异常 针对异常的测试:不应该声明该方法而抛出 java.lang.Exception 异常,不应当将异常用于流控制,不应该捕获 Throwable,等等。 有争议的 PMD 的有些规则是有能力的 Java 程序员可以接受的。但还是有一些争议。这个规则集包含一些更有问题的检验,其中包括把 null 赋值给变量、方法中有多个返回点,以及从 sun 包导入等。 日志

5、 查找 java.util.logging.Logger 的不当使用,包括非终状态、非静态的记录器,以及在一个类中有多个记录器。 2、构建自己的规则集 2.1、导入规则集 Sample ruleset for developerWorks article 文件保存成为*.xml,通过Rules Configuration 的Import 导入到PMD中2.2、导入特定规则的规则集 Sample ruleset for developerWorks article 文件保存成为*.xml,通过Rules Configuration 的Import 导入到PMD中 2.3、排除了设计规则的规则集 可以把大多数规则包含在一个集合,但是不包括少数您不同意的或者会造成大量误报的特定规则。例如,XOM 在进行表查找的时候经常使用没有 default 块的 switch 语句。我可以保留大多数设计规则,但是可以在导入设计规则的规则元素中添加 子元素,避开对遗漏 default 块的检查 Sample ruleset for developerWorks article 2.4、通过编写XPath表达式实现规则集 编写 XPath 表达式,它会针对每个 Java 类的抽象语法树进行处理,但是比较繁杂.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号