http://blog.csdn.net/ccboy2009/article/details/32318781java
<?xml version="1.0" encoding="UTF-8"?>數組
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">函數
<module name="Checker">編碼
<!--檢查重複行--> <module name="StrictDuplicateCode"> <property name="min" value="5" /> </module> <!--文件行數--> <module name="FileLength"> <property name="max" value="2000"/> </module> <module name="FileTabCharacter"/> <module name="TreeWalker"> <!--javadoc的檢查:1類,2方法,3變量--> <module name="JavadocType" /> <module name="JavadocMethod"/> <module name="JavadocVariable"/> <!-- import方面的檢查:1避免*,2沒有被用到,3重複的,4基本類型 --> <module name="AvoidStarImport" /> <module name="UnusedImports" /> <!-- 命名規則檢查:Class或Interface ^[A-Z][a-zA-Z0-9]*$--> <module name="TypeName" /> <!-- 方法名 ^[a-z][a-zA-Z0-9]*$--> <module name="MethodName" /> <!-- 方法的參數命名 ^[a-z][a-zA-Z0-9]*$--> <module name="ParameterName " /> <!-- 非static型變量 ^[a-z][a-zA-Z0-9]*$--> <module name="MemberName"/> <!-- 常量名檢查(static , final 字段) ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$--> <module name="ConstantName" /> <!-- 包名檢查 ^[a-z]+(\.[a-z][a-z0-9]*)*$ --> <module name="PackageName"> <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/> </module> <!-- 局部的final變量,包括catch中的參數 ^[a-z][a-zA-Z0-9]*$ --> <module name="LocalFinalVariableName" /> <!-- 局部的非final型的變量,包括catch中的參數 ^[a-z][a-zA-Z0-9]*$ --> <module name="LocalVariableName" /> <!-- 僅僅是static型的變量(不包括staticfinal型) ^[a-z][a-zA-Z0-9]*$ --> <module name="StaticVariableName" /> <!-- 方法的參數個數不超過5個,而且不對構造方法進行檢查--> <module name="ParameterNumber"> <property name="max" value="5" /> <property name="tokens" value="METHOD_DEF" /> </module> <!--代碼行數及行代碼長度限制: 方法不超過200行,每行不超過150字符--> <module name="MethodLength"> <property name="tokens" value="METHOD_DEF" /> <property name="max" value="200" /> </module> <module name="LineLength"> <property name="max" value="150" /> </module> <!-- 空格限定--> <module name="MethodParamPad"/> <module name="ParenPad"/> <module name="TypecastParenPad"/> <!-- 關鍵字--> <!-- public static final XXX 是對一個常量的聲明。若是使用static public final 就是錯誤的 --> <module name="ModifierOrder"/> <!-- 過濾多於的關鍵字--> <module name="RedundantModifier"/> <!-- 空白域--> <module name="EmptyBlock"/> <module name="NeedBraces"/> <!-- 多餘的括號 --> <module name="AvoidNestedBlocks"> <property name= "allowInSwitchCase" value="true"/> </module> <!--編碼方面的檢查 --> <module name="EmptyStatement" /> <!-- 若是某個變量一直都沒變,那麼它就應該是final型的 <module name="FinalLocalVariable"/> --> <!-- 不容許使用switch語句 --> <module name="IllegalToken"> <property name="tokens" value="LITERAL_SWITCH"/> </module> <!-- 內部賦值語句 :String s = Integer.toString(i = 2); --> <module name="InnerAssignment"/> <!-- 絕對不能容忍魔法數 ,即數據標識常量化--> <module name="MagicNumber" /> <!--循環控制變量--> <module name="ModifiedControlVariable" /> <!-- 多餘的throw --> <module name="RedundantThrows" /> <!-- 未被簡化的布爾返回值--> <module name="SimplifyBooleanReturn"/> <!-- String的比較不能用!= 和 == --> <module name="StringLiteralEquality" /> <!-- if最多嵌套3層 --> <module name="NestedIfDepth"> <property name="max" value="3" /> </module> <!-- try最多被嵌套2層 --> <module name="NestedTryDepth"> <property name="max" value="2" /> </module> <!-- 檢查並確認一個類的clone()方法調用了父類的clone() --> <module name="SuperClone"/> <!-- 檢查並確認一個類的finalize()調用了父類的finalize() --> <module name="SuperFinalize"/> <!-- 不能catch java.lang.Exception,異常分類處理--> <module name="IllegalCatch"> <property name="illegalClassNames" value="java.lang.Exception" /> </module> <!-- 確保一個類有package聲明 --> <module name="PackageDeclaration" /> <!-- 一個方法中最多有3個return --> <module name="ReturnCount"> <property name="max" value="3" /> <property name="format" value="^$" /> </module> <!-- 確保某個class 在被使用時都已經被初始化成默認值(對象是null , 數字和字符是0 , boolean 變量是false.)了 --> <module name="ExplicitInitialization"/> <!-- 不準有一樣內容的String --> <module name="MultipleStringLiterals" /> <!-- 同一行不能有多個聲明 --> <module name="MultipleVariableDeclarations" /> <!-- 沒必要要的圓括號 檢查沒必要要的圓括號」(,)」。好比, if(((((true))))) --> <module name="UnnecessaryParentheses" /> <!-- 限制一個布爾表達式中的 &&, || 和^的個數。能夠讓代碼看起來更清晰,容易排錯和維護 --> <module name="BooleanExpressionComplexity"> <property name="max" value="4"/> </module> <!-- 一個類中若是使用太多其餘的類,是確定會增長系統複雜度的。使用其餘的類越少,耦合度就越少 --> <module name="ClassDataAbstractionCoupling"> <property name="max" value="10"/> </module> <!-- 確保函數的分支複雜度沒有超出限制 --> <module name="CyclomaticComplexity"> <property name="max" value="4"/> </module> <!-- NPATH 量度計算了一個函數的可執行的分支個數 --> <module name="NPathComplexity"> <property name="max" value="3"/> </module> <!-- ************************其餘*********************************** --> <!-- 檢查並確保全部的常量中的L都是大寫的。由於小寫的字母l跟數字1太象了 --> <module name="UpperEll" /> <!-- 檢查數組類型的定義是String[] args,而不是String args[] --> <module name="ArrayTypeStyle" /> <!-- 不準使用與代碼同行的註釋 <module name="TrailingComment"/> --> <!-- 不準存在TO DO --> <module name="TodoComment" /> <!-- 除了正常的程序入口以外,全部的main方法都應該被刪掉或註釋掉 --> <module name="UncommentedMain"/> </module>
</module>.net