简介

插件的用途就不多说了,主要用于JAVA代码规范检测,默认用的sun的一套检查标准,也可以自己定义。这里讲的版本是5.6

在eclipse中安装checkstyle

help--> eclipse marketplace 搜索 checkstyle,安装即可。

用checkstyle检测


选择要检测的项目,右键点击checkstyle--->check code with checkstyle即可




Java检测刷屏 java代码检测_java



会生成两项报告,点击windows-->show view ,找到checkstyle即可

Java检测刷屏 java代码检测_java_02

生成的结果如下:

Java检测刷屏 java代码检测_代码检测_03

还有一个饼状图

Java检测刷屏 java代码检测_java_04

修改checkstyle参数

点击eclpse-->windows-->preferences

Java检测刷屏 java代码检测_代码规范性检查_05

可以看到,目前使用的是sun checks,点击configure,会发现,The configuration can not be edited.

也就是自带的两个内置规则是不能编辑的,于是我们copy出一份自己的规则,点击copy,起个名字,确认即可。

Java检测刷屏 java代码检测_代码规范性检查_06

再次打开,就可编辑了。

例如我们之前检测结果中,问题最大的一项是line is longer than X characters,这里默认值是80个字符,有点太短了,我

把它改成100,找到Size Violations,离得 max line length,打开,默认是80,改成100即可。

Java检测刷屏 java代码检测_Java检测刷屏_07

去掉对某个文件的统计


实际操作中,由于项目中包含一个.ttc的字库,导致统计结果中几乎被这个文件占掉了一半,可以右键点击这个文件,-->checkstyle-->clear checkstyle violation,


统计列表随机跟着改变。


各种检查提示的解释



utility classes should not have a public or default constructor


还会有提示:All methods are static. Consider using Singleton instead.Alternatively,you could add a private constructor or make the class abstract to silence this warning.


工具类不应该有默认或者公共的构造函数,也就是说这个类里可能方法都是static,那就不需要构造它的实例,因此应该给加一个private的构造函数,就不会报这个错了。


a class which only has private constructors should be final


例如上一个,加了private构造函数,又会出这个,把class设置成final即可。


Array brackets at illegal positon

String array[] = {}; 改成

String[] array = {};即可,应该是指位置不标准。

conditional logic can be removed

例如:

if ("post".equalsIgnoreCase(method)) {
return true;
} else {
return false;
}

会报错,conditional logic can be removed,条件逻辑可以删掉,改成如下方式:

return "post".equalsIgnoreCase(method);

即可,比较简洁

X is not followed by whitespace


符号的左右要有空格


X modifier out of order with the JLS suggestions


是修饰符顺序不符合标准。例如:


public final static String SAFE_EVENT_AUDIT_RECORD = "安全事件类";

改成:

public static final String SAFE_EVENT_AUDIT_RECORD = "安全事件类";

即可



Name ''X'' must match pattern ''X''.


要求变量必须符合正则表达式定义的规则,


例如变量: must match pattern '^[a-z][a-zA-Z0-9]*$'


变量必须小写字母开头,可以包含大写字母和数字,但是不能包含下划线


这里如果需要改名,可以使用ECLIPSE的重新命名功能进行批量修改,快捷键是ALT + SHIFT + R


常量:^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$


常量大写字母开头,包含_和数字。