您的位置:首页 > 其它

Checkstyle一些具体用法

2011-12-22 16:21 120 查看
Checkstyle是一款检查java程序代码样式的工具,可以有效的帮助我们检视代码以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一。Checkstyle提供了高可配置性,以便适用于各种代码规范,所以除了可以使用它提供的sun的代码标准外,你也可以定制自己的标准。我们可以在eclipse中安装checkstyle的插件,来方便我们的使用。

Checkstyle可以让我们养成书写良好代码风格的习惯,代码的整洁也减少了很多bad smell的产生。使用checkstyle的过程中可能需要经常的调整配置文件,有些check过于严格,可以根据实际情况取消一些代码检查。

下面来看看一些具体用法:



Javadoc Comments

 JavadocPackage

检查每个java package中是否有java注释文件,默认是允许一个package-info.java,也可以通过allowLegacy属性配置允许package.html。

 JavadocType

检查类和接口的javadoc。默认不检查author 和version tags。

 JavadocMethod

检查方法和构造函数的javadoc。默认不检查未使用的异常抛出。

 JavadocVariable

检查变量的javadoc。

 JavadocStyle

检查javadoc的格式。比如:javadoc的第一行是否以句号结束,javadoc除了tags外是否有description,检查javadoc中的html格式。

 WriteTag

输出javadoc中的tag。

Naming Conventions

 AbstractClassName

检查抽象类名。

 ClassTypeParameterName

检查类的Parameter名。

 ConstantName

检查常量名。

 LocalFinalVariableName

检查局部的final类型变量名,包括catch的参数。

 LocalVarableName

检查局部的非final类型的变量名,包括catch的参数。

 MemberName

检查非静态变量。

 MethodName

检查方法名。

 MethodTypeParameterName

检查方法的参数名。

 PackageName

检查包名。

 ParameterName

检查参数名。

 StaticVariableName

检查静态的,非final类型的变量名。

 TypeName

检查类名和接口名。

Imports

 AvoidStarImport

检查是否有使用*进行import。

 AvoidStaticImport

检查是否有静态import。比如是否导入了java.lang包中的内容。

 IllegalImport

检查是否import了违法的包。默认拒绝import所有sun.*包。

 RedundanImport

检查是否有重复的import。

 UnusedImports

检查是否有未使用的import。

 ImportOrder

检查import的分组和顺序。

 ImportControl

控制可import的包。在一个较大的project可限制使用过多的第三方包,通过一个依照http://www.puppycrawl.com/dtds/import_control_1_0.dtd的xml文件来指定。

Size Violations

 ExecutableStatementCount

限制可执行代码片段的长度。默认为30。

 FileLength

检查java文件的长度。默认为2000。

 LineLength

检查代码行的长度。默认为80。

 MethodLength

检查方法和构造函数的长度。默认为150。

 AnonInnerLength

检查匿名内部类的长度。默认为20。

 ParameterNumber

检查方法和构造函数的参数个数。默认为7。

Whitespace

 GenericWhitespace

检查<和>周围的空白。

 EmptyForInitializerPad

检查空的初始化位置的空白。比如for循环中的初始化。

 EmptyForIteratorPad

检查空的迭代位置的空白。

 MethodParamPad

检查方法签名之前的空白。

 NoWhitespaceAfter

检查分隔符后的空白。

 NoWhitespaceBefore

检查分隔符前的空白。

 OperatorWrap

检查操作符的空白规则。

 ParenPad

检查圆括号的空白规则。

 TypecaseParenPad

检查强制转型的圆括号的空白规则。

 TabCharacter

检查是否有Tab字符(’"t’)。

 WhitespaceAfter

检查分隔符是否在空白之后。

 WhitespaceAround

检查分隔符周围是否有空白。

ModifierOrder

 ModifierOrder

检查修饰符的顺序是否遵照java语言规范。

 RedundantModifier

检查接口和annotation中是否有重复的修饰符。

Block Checks

 EmptyBlock

检查空的代码块。

 LeftCurly

检查’{’和左边的代码块是否在同一行。

 NeedBraces

检查是否需要大括号。主要是在if,else时的情况。

 RightCurly

检查’}’。

 AvoidNestedBlocks

检查不需要的嵌套’{}’。

Coding

 ArrayTrailingComma

检查数组初始化是否以逗号结束。

 AvoidInlineConditionals

检查inline的条件操作。

 CovariantEquals

检查类是否覆盖了equals(java.lang.Object)。

 DoubleCheckedLocking

检查DCL的问题。

 EmptyStatement

检查空的代码段。

 EqualsAvoidNull

检查一个可能为null的字符串是否在equals()比较的左边。

 EqualsHashCode

检查类是否覆盖了equals()和hashCode()。

 FinalLocalVariable

检查未改变过的局部变量是否声明为final。

 HiddenField

检查局部变量或参数是否隐藏了类中的变量。

 IllegalInstantiation

检查是否使用工厂方法实例化。

 IllegalToken

检查非法的分隔符。

 IllegalTokenText

检查非法的分隔符的下个字符。

 InnerAssignment

检查子表达式中是否有赋值操作。

 MagicNumber

检查是否有“magic numbers”。

 MissingSwitchDefault

检查switch语句是否有default的clause。

 ModifiedControlVariable

检查循环控制的变量是否在代码块中被修改。

 RedundantThrows

检查是否有被重复抛出的异常。

 SimplifyBooleanExpression

检查是否有过度复杂的布尔表达式。

 SimplifyBooleanReturn

检查是否有过于复杂的布尔返回代码段。

 StringLiteralEquality

检查字符串是否有用= =或!=进行操作。

 NestedIfDepth

检查嵌套的层次深度。

 NestedTryDepth

检查try的层次深度。

 NoClone

检查是否覆盖了clone()。

 NoFinalizer

检查是否有定义finalize()。

 SuperClone

检查覆盖的clone()是否有调用super.clone()。

 SuperFinalize

检查覆盖的finalize()是否有调用super.finalize()。

 IllegalCatch

检查是否catch了不能接受的错误。

 IllegalThrows

检查是否抛出了未声明的异常。

 PackageDeclaration

检查类中是否有声明package。

 JUnitTestCase

确保setUp(), tearDown()方法签名的正确性。

 ReturnCount

限制return代码段的数量。

 IllegalType

检查未使用过的类。

 DeclarationOrder

检查类和接口中的声明顺序。

 ParameterAssignment

检查不允许的参数赋值。

 ExplicitInitialization

检查类和对象成员是否初始化为默认值。

 DefaultComesLast

检查default的clause是否在switch代码段的最后。

 MissingCtor

检查类依赖。

 FallThrough

检查switch代码的case中是否缺少break,return,throw和continue。

 MultipleStringLiterals

检查一个文件中是否有多次出现的字符串。

 MultipleVariableDeclarations

检查代码段和代码行中是否有多次变量声明。

 RequireThis

检查代码中是否有“this.”。

 UnnecessaryParentheses

检查是否有使用不需要的圆括号。

Class Design

 VisibilityModifier

检查类成员的可见度。

 FinalClass

检查只有private构造函数的类是否声明为final。

 InterfaceIsType

检查接口是否仅定义类型。

 HideUtilityClassConstructor

检查工具类是否有putblic的构造器。

 DesignForExension

检查类是否为扩展设计。

 MutableException

确保异常是不可变的。

 ThrowsCount

限制抛出异常的数量。

Duplicate Code

 StrictDuplicateCode

严格检查重复代码。

Miscellaneous

 GenericIllegalRegexp

正则表达式的模式检查。

 NewlineAtEndOfFile

检查文件是否以一个空行结束。

 TodoComment

检查TODO:注释。

 Translation

检查property文件中是否有相同的key。

 UncommentedMain

检查是否有未注释的main方法。

 UpperEll

检查long型约束是否有大写的“L”。

 ArrayTypeStyle

检查数组类型定义的样式。

 FinalParameters

检查方法名、构造函数、catch块的参数是否是final的。

 Indentation

检查代码中正确的缩进。

 TrailingComment

确保是否要代码行注释。

 RequiredRegexp

确保一个指定的正则表达式的规则已经存在代码中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: