CheckStyle使用的一些技巧

详细描述了15类几十种预定义check的定义及使用范围。
这里的有些check有个公共的属性tokens,意思是该check应用的范围,例如同样是检查方法的长度,普通方法可能最多可以有150行,而构造函数则最多只能有60行。这时,虽然同样是使用MethodLength这个check,但是可以用tokens这个属性进行区分,如下xml文件的片段:

<module name="MethodLength">
<wbr><wbr><wbr> &lt;property name="tokens" value="METHOD_DEF"/&gt;<br> &lt;/module&gt;<br> &lt;module name="MethodLength"&gt;<br><wbr><wbr><wbr> &lt;property name="tokens" value="CTOR_DEF"/&gt;<br><wbr><wbr><wbr> &lt;property name="max" value="60"/&gt;<br> &lt;/module&gt;<br><br> 这其中应用了两次MethodLength,第一次的tokens定义为METHOD_DEF,即普通的方法;第二次的tokens定义为CTOR_DEF,即构造函数,并且在此定义了与缺省值不同的值,即60。这样CheckStyle可以根据方法的种类不同而执行不同的check策略。CheckStyle也定义了大量的诸如CTOR_DEF形式的tokens类型,应用于不同的check中的tokens,其定义在com.puppycrawl.tools.checkstyle.api.TokenTypes类中。这些Tokens实际上是对源代码文件进行拆分后做对应的时候的一些标志,类似编译中的语法分析,CheckStyle的原理应该就是在对源代码做语法分析后,针对这些Tokens的内容,比对预先设定好的代码写作策略,并给出对比的结果。TokenTypes类内容很多,这里就不一一列举了。<br><br></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

你可能感兴趣的:(checkstyle)