<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ……天天向上

    好的想法總是無窮無盡

    統計

    留言簿(1)

    閱讀排行榜

    評論排行榜

    checkStyle配置說明、范例和結果分析

      1<?xml version="1.0"?>
      2<!DOCTYPE module PUBLIC
      3    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
      4    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
      5
      6<!--
      7
      8  Checkstyle configuration that checks the sun coding conventions from:
      9
     10    - the Java Language Specification at
     11      http://java.sun.com/docs/books/jls/second_edition/html/index.html
     12
     13    - the Sun Code Conventions at http://java.sun.com/docs/codeconv/
     14
     15    - the Javadoc guidelines at
     16      http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
     17
     18    - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
     19
     20    - some best practices
     21
     22  Checkstyle is very configurable. Be sure to read the documentation at
     23  http://checkstyle.sf.net (or in your downloaded distribution).
     24
     25  Most Checks are configurable, be sure to consult the documentation.
     26
     27  To completely disable a check, just comment it out or delete it from the file.
     28
     29  Finally, it is worth reading the documentation.
     30
     31-->
     32
     33<module name="Checker">
     34    <!--
     35        重復代碼的檢查,超過8行就認為重復,UTF-8格式 本檢查一定要放在"TreeWalker"節點前,否則在
     36        Checkclipse中會無法使用。(在ant下可以)
     37    -->
     38    <module name="StrictDuplicateCode">
     39        <property name="min" value="8" />
     40        <property name="charset" value="UTF-8" />
     41    </module>
     42    <module name="TreeWalker">
     43        <!-- javadoc的檢查 -->
     44        <!-- 檢查所有的interface和class -->
     45        <module name="JavadocType" />
     46        <!-- 檢查所有方法的javadoc,可以不聲明RuntimeException -->
     47        <module name="JavadocMethod">
     48            <property name="allowUndeclaredRTE" value="true" />
     49        </module>
     50        <!-- 檢查某個變量的javadoc -->
     51        <module name="JavadocVariable" />
     52        <!-- 命名方面的檢查,它們都使用了Sun官方定的規則。 -->
     53        <!-- 類名(class 或interface) 的檢查 -->
     54        <module name="TypeName" />
     55        <!-- 變量的檢查 -->
     56        <module name="MemberName" />
     57        <!-- 方法名的檢查 -->
     58        <module name="MethodName" />
     59        <!-- 方法的參數名 -->
     60        <module name="ParameterName " />
     61        <!-- 常量名的檢查 -->
     62        <module name="ConstantName" />
     63        <!-- 長度方面的檢查 -->
     64        <!-- 文件長度不超過1500行 -->
     65        <module name="FileLength">
     66            <property name="max" value="1500" />
     67        </module>
     68        <!-- 每行不超過120個字-->
     69        <module name="LineLength">
     70            <property name="max" value="120" />
     71        </module>
     72        <!-- 方法不超過30行 -->
     73        <module name="MethodLength">
     74            <property name="tokens" value="METHOD_DEF" />
     75            <property name="max" value="30" />
     76        </module>
     77        <!-- 方法的參數個數不超過3個。 -->
     78        <module name="ParameterNumber">
     79            <property name="max" value="3" />
     80        </module>
     81        <!-- 多余的關鍵字 -->
     82        <module name="RedundantModifier" />
     83        <!-- 對區域的檢查 -->
     84        <!-- 不能出現空白區域 -->
     85        <module name="EmptyBlock" />
     86        <!-- 所有區域都要使用大括號。 -->
     87        <module name="NeedBraces" />
     88        <!-- 多余的括號 -->
     89        <module name="AvoidNestedBlocks">
     90            <property name="allowInSwitchCase" value="true" />
     91        </module>
     92        <!-- 編碼方面的檢查 -->
     93        <!-- 不許出現空語句 -->
     94        <module name="EmptyStatement" />
     95        <!-- 每個類都實現了equals()和hashCode() -->
     96        <module name="EqualsHashCode" />
     97        <!-- 不許使用switch -->
     98        <module name="IllegalToken">
     99            <property name="tokens" value="LITERAL_SWITCH" />
    100        </module>
    101        <!-- 不許內部賦值 -->
    102        <module name="InnerAssignment" />
    103        <!-- 絕對不能容忍魔法數 -->
    104        <module name="MagicNumber" />
    105        <!-- 循環控制變量不能被修改 -->
    106        <module name="ModifiedControlVariable" />
    107        <!-- 多余的throw -->
    108        <module name="RedundantThrows" />
    109        <!-- 不許使用未被簡化的條件表達式 -->
    110        <module name="SimplifyBooleanExpression" />
    111        <!-- 不許使用未被簡化的布爾返回值 -->
    112        <module name="SimplifyBooleanReturn" />
    113        <!-- String的比較不能用!= 和 == -->
    114        <module name="StringLiteralEquality" />
    115        <!-- if最多嵌套3層 -->
    116        <module name="NestedIfDepth">
    117            <property name="max" value="3" />
    118        </module>
    119        <!-- try最多被嵌套1層 -->
    120        <module name="NestedTryDepth" />
    121        <!-- clone方法必須調用了super.clone() -->
    122        <module name="SuperClone" />
    123        <!-- finalize 必須調用了super.finalize() -->
    124        <module name="SuperFinalize" />
    125        <!-- 不能catch java.lang.Exception -->
    126        <module name="IllegalCatch">
    127            <property name="illegalClassNames" value="java.lang.Exception" />
    128        </module>
    129        <!-- JUnitTestCase 的核心方法存在。 -->
    130        <module name="JUnitTestCase" />
    131        <!-- 一個方法中最多有3個return -->
    132        <module name="ReturnCount">
    133            <property name="max" value="3" />
    134        </module>
    135        <!-- 不許對方法的參數賦值 -->
    136        <module name="ParameterAssignment" />
    137        <!-- 不許有同樣內容的String -->
    138        <module name="MultipleStringLiterals" />
    139        <!-- 同一行不能有多個聲明 -->
    140        <module name="MultipleVariableDeclarations" />
    141        <!-- 各種量度 -->
    142        <!-- 布爾表達式的復雜度,不超過3 -->
    143        <module name="BooleanExpressionComplexity" />
    144        <!-- 類數據的抽象耦合,不超過7 -->
    145        <module name="ClassDataAbstractionCoupling" />
    146        <!-- 類的分散復雜度,不超過20 -->
    147        <module name="ClassFanOutComplexity" />
    148        <!-- 函數的分支復雜度,不超過10 -->
    149        <module name="CyclomaticComplexity" />
    150        <!-- NPath復雜度,不超過200 -->
    151        <module name="NPathComplexity" />
    152        <!-- 雜項 -->
    153        <!-- 禁止使用System.out.println -->
    154        <module name="GenericIllegalRegexp">
    155            <property name="format" value="System\.out\.println" />
    156            <property name="ignoreComments" value="true" />
    157        </module>
    158        <!-- 不許使用與代
    主頁: http://checkstyle.sourceforge.net/ 

    Checkstyle配置文件的簡要說明
    關于配置文件的各個模塊的更多細節,請參考CHECKSTYLE_HOME/docs/index.html 
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"
    >
    <!-- 對于所有的模塊來書,如果有這個模塊則說明檢測這一項,沒有則不檢測這一項 -->
    <!-- 所有的模塊中,其ROOT必須為Checker -->
    <module name="Checker">
    <!-- 檢驗每個包是否存在package.html文件-->
    <!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml -->
    <!--
    <module name="PackageHtml"/>
    -->
    <!-- 檢驗每個文件末尾是否有一個空行-->
    <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
    <!--
    <module name="NewlineAtEndOfFile"/>
    -->
    <!-- Checks that property files contain the same keys. -->
    <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
    <module name="Translation"/>
    <module name="TreeWalker">
    <!-- Checks for Javadoc comments. -->
    <!-- See http://checkstyle.sf.net/config_javadoc.html -->
    <!-- Checks Javadoc comments for method definitions.-->
    <module name="JavadocMethod">
    <property name="scope" value="public"/>
    <!-- 是否允許錯誤的參數聲明,true為允許,缺省為不允許 -->
    <property name="allowMissingParamTags" value="true"/>
    <!-- 是否允許錯誤的錯誤聲明,true為允許,缺省為不允許 -->
    <property name="allowMissingThrowsTags" value="true"/>
    <!-- 是否允許錯誤的返回類型聲明,true為允許,缺省為不允許 -->
    <property name="allowMissingReturnTag" value="true"/>
    </module>
    <!--Checks Javadoc comments for class and interface definitions.-->
    <module name="JavadocType"/>
    <!-- Checks that variables have Javadoc comments.-->
    <module name="JavadocVariable">
    <property name="scope" value="protected"/>
    </module>
    <!-- 檢查Javadoc的格式 -->
    <module name="JavadocStyle">
    <property name="scope" value="public"/>
    <!-- Comment的第一句的末尾是否要有一個句號,true必須有,default為true -->
    <property name="checkFirstSentence" value="false"/>
    <!-- 檢查錯誤的HTML腳本,比如不匹配,true檢查,default為true -->
    <property name="checkHtml" value="true"/>
    </module>
    <!-- Checks for Naming Conventions. -->
    <!-- See http://checkstyle.sf.net/config_naming.html -->
    <!-- 確省必須以Abstract開始或者以Factory結束 -->
    <!--
    <module name="AbstractClassName"/>
    -->
    <module name="ConstantName"/>
    <module name="LocalFinalVariableName"/>
    <module name="LocalVariableName"/>
    <module name="MemberName"/>
    <module name="MethodName"/>
    <module name="PackageName"/>
    <module name="ParameterName"/>
    <module name="StaticVariableName"/>
    <module name="TypeName"/>
    <!-- Checks for Headers -->
    <!-- See http://checkstyle.sf.net/config_header.html -->
    <!-- 檢查文件是否以指定文件開始,這里最好是放一些版權信息和工程描述 -->
    <!-- headerFile:指定的文件 -->
    <!-- ignoreLines:忽略哪些行,以","分隔 -->
    <!--
    <module name="Header">
    <property name="headerFile" value="java.header"/>
    <property name="ignoreLines" value="2, 3, 4, 5"/>
    </module>
    -->
    <!-- Following interprets the header file as regular expressions. -->
    <!--
    <module name="RegexpHeader"/>
    -->
    <!-- Checks for imports -->
    <!-- See http://checkstyle.sf.net/config_import.html -->
    <!-- 檢查使用*號的導入,默認為全部類 -->
    <module name="AvoidStarImport"/>
    <!-- 檢查是否有非法的包,確省檢查sun.*;對于某些包是不建議直接調用的 -->
    <module name="IllegalImport">
    <property name="illegalPkgs" value="sun.*"/>
    </module>
    <!-- 檢查多于的導入,如一個類導入了多次 -->
    <module name="RedundantImport"/>
    <!-- 檢查沒有使用的導入 -->
    <module name="UnusedImports"/>
    <!-- 導入排序 -->
    <!-- groups:分組,哪些是一組的 -->
    <!-- ordered:同一個組內是否排序,true排序,確省為true -->
    <!-- separated:各個組之間是否需要用空行分隔,確省為false -->
    <!-- caseSensitive:是否是大小寫敏感的,確省是 -->
    <!--
    <module name="ImportOrder">
    <property name="groups" value="java,javax"/>
    <property name="ordered" value="true"/>
    <property name="separated" value="true"/>
    <property name="caseSensitive" value="true"/>
    </module>
    -->
    <!-- Checks for Size Violations. -->
    <!-- See http://checkstyle.sf.net/config_sizes.html -->
    <!-- 檢查方法內可執行語句的個數,確省為30行 -->
    <!--
    <module name="ExecutableStatementCount">
    <property name="max" value="30"/>
    </module>
    -->
    <!-- 文件的最大行數,缺省為1500 -->
    <module name="FileLength">
    <property name="max" value="2000"/>
    </module>
    <!-- 每行的最大字符數,缺省為80 -->
    <module name="LineLength">
    <!-- 忽略指定格式的行,如*號開始的,等 -->
    <!--
    <property name="ignorePattern" value="^ *\* *[^ ]+$"/>
    -->
    <property name="max" value="120"/>
    </module>
    <!-- 方法的最大行數,缺省為150 -->
    <module name="MethodLength">
    <property name="max" value="200"/>
    <!-- 統計時是否包括空行和以//開始的注釋,缺省為統計(true)-->
    <property name="countEmpty" value="false"/>
    </module>
    <!-- 匿名類的最大行數,缺省為20 -->
    <module name="AnonInnerLength">
    <property name="max" value="60"/>
    </module>
    <!-- 檢查方法和構造子參數的最大個數,缺省為7 -->
    <module name="ParameterNumber"/>
    <!-- Checks for whitespace -->
    <!-- See http://checkstyle.sf.net/config_whitespace.html -->
    <module name="EmptyForInitializerPad"/>
    <module name="EmptyForIteratorPad"/>
    <module name="MethodParamPad">
    <property name="allowLineBreaks" value="true"/>
    </module>
    <module name="NoWhitespaceAfter"/>
    <module name="NoWhitespaceBefore"/>
    <module name="OperatorWrap"/>
    <module name="ParenPad"/>
    <module name="TypecastParenPad"/>
    <module name="TabCharacter"/>
    <module name="WhitespaceAfter"/>
    <module name="WhitespaceAround"/>
    <!-- Modifier Checks -->
    <!-- See http://checkstyle.sf.net/config_modifiers.html -->
    <!-- 要求JLS suggestions -->
    <!--
    <module name="ModifierOrder"/>
    -->
    <module name="RedundantModifier"/>
    <!-- Checks for blocks. You know, those {}'s -->
    <!-- See http://checkstyle.sf.net/config_blocks.html -->
    <!-- 檢查空塊 -->
    <!--
    <module name="EmptyBlock"/>
    -->
    <module name="LeftCurly"/>
    <!-- 檢查只有必須有{},確省為必須,主要在if,else時有這樣的情況 -->
    <module name="NeedBraces"/>
    <!-- 檢查"}",確省在同一行 -->
    <module name="RightCurly">
    <property name="option" value="alone"/>
    </module>
    <!-- 檢查多余嵌套的{},請看文檔,不易說明 -->
    <module name="AvoidNestedBlocks"/>
    <!-- Checks for common coding problems -->
    <!-- See http://checkstyle.sf.net/config_coding.html -->
    <module name="AvoidInlineConditionals"/>
    <module name="CovariantEquals"/>
    <module name="DeclarationOrder"/>
    <module name="DefaultComesLast"/>
    <module name="DoubleCheckedLocking"/>
    <!--
    <module name="EmptyStatement"/>
    -->
    <module name="EqualsHashCode"/>
    <!-- 變量必須初始化為自己的類型,如果給一個Object類型的變量初始化為null會提示 -->
    <!--
    <module name="ExplicitInitialization"/>
    -->
    <module name="FallThrough"/>
    <!--
    <module name="FinalLocalVariable"/>
    -->
    <module name="HiddenField">
    <property name="ignoreConstructorParameter" value="true"/>
    <property name="ignoreSetter" value="true"/>
    </module>
    <!-- Exception, Throwable, RuntimeException是不允許catch的 -->
    <!--
    <module name="IllegalCatch"/>
    -->
    <module name="IllegalInstantiation"/>
    <!-- 
    <module name="IllegalToken"/>
    -->
    <module name="IllegalTokenText"/>
    <module name="IllegalType"/>
    <module name="InnerAssignment"/>
    <!--檢查直接數
    <module name="MagicNumber"/>
    檢查是否有構造子
    <module name="MissingCtor"/>
    -->
    <module name="MissingSwitchDefault"/>
    <module name="MultipleVariableDeclarations"/>
    <!--
    <module name="JUnitTestCase"/>
    <module name="NestedIfDepth"">
    <property name="max" value="5"/>
    </module>
    <module name="NestedTryDepth"">
    <property name="max" value="5"/>
    </module>
    <module name="PackageDeclaration"/>
    <module name="ReturnCount"/>
    -->
    <!-- 不能為參數付值 -->
    <!--
    <module name="ParameterAssignment"/>
    -->
    <module name="RedundantThrows"/>
    <!-- 不能理解的,好像是bug
    <module name="RequireThis"/>
    -->
    <module name="SimplifyBooleanExpression"/>
    <module name="SimplifyBooleanReturn"/>
    <module name="StringLiteralEquality"/>
    <module name="SuperClone"/>
    <module name="SuperFinalize"/>
    <module name="UnnecessaryParentheses"/>
    <!-- Checks for class design -->
    <!-- See http://checkstyle.sf.net/config_design.html -->
    <!-- 要求一個方法必須聲明為Extension的,否則必聲明為abstract, final or empty -->
    <!--
    <module name="DesignForExtension"/>
    -->
    <!-- 檢查private構造子是否聲明為final,這里有個問題,在Java中構造子是不能聲明為final的 -->
    <!--
    <module name="FinalClass"/>
    -->
    <!-- 要求一定要有一個構造子 -->
    <!--
    <module name="HideUtilityClassConstructor"/>
    -->
    <module name="InterfaceIsType"/>
    <!-- 檢查變量的可見性,確省只允許static final 為public,否則只能為private -->
    <module name="VisibilityModifier">
    <property name="packageAllowed" value="true"/>
    <property name="protectedAllowed" value="true"/>
    </module>
    <!--
    <module name="MutableException"/>
    -->
    <!-- 限制拋出聲明的指定數量,確省為1 -->
    <!--
    <module name="ThrowsCount"/>
    -->
    <!-- Miscellaneous other checks. -->
    <!-- See http://checkstyle.sf.net/config_misc.html -->
    <!-- 數組的聲明是否允許Java的類型,確省為允許,Java類型為String[] xx,C++的類型為String xx[]; -->
    <module name="ArrayTypeStyle"/>
    <!--
    <module name="FinalParameters"/>
    -->
    <!-- 一般性的代碼問題,不好的習慣等,可以多 -->
    <!-- 文件中使用了System.out.print等-->
    <module name="GenericIllegalRegexp">
    <property name="format" value="System\.out\.print"/>
    <property name="message" value="bad practice of use System.out.print"/>
    </module>
    <module name="GenericIllegalRegexp">
    <property name="format" value="System\.exit"/>
    <property name="message" value="bad practice of use System.exit"/>
    </module>
    <module name="GenericIllegalRegexp">
    <property name="format" value="printStackTrace"/>
    <property name="message" value="bad practice of use printStackTrace"/>
    </module>
    <!-- 關于Task,你可以聲明自己的Task標識 -->
    <module name="TodoComment">
    <property name="format" value="TODO"/>
    </module>
    <!-- 強迫//注釋必須如何,入下要求只能有一行,具體看文檔 -->
    <!--
    <module name="TrailingComment">
    <property name="format" value="^\\s*$"/>
    </module>
    -->
    <!-- main方法經常會在debug時使用,但發行版本的時候可能并不需要這個方法,提示 -->
    <!--
    <module name="UncommentedMain"/>
    -->
    <!-- 當定義一個常量時,希望使用大寫的L來代替小寫的l,原因是小寫的l和數字1很象 -->
    <module name="UpperEll"/>
    <!-- 檢查正確的縮進,這個更象是個人習慣 -->
    <!--
    <module name="Indentation">
    <property name="braceAdjustment" value="0"/>
    </module>
    -->
    <!-- Checks For Metrics -->
    <!-- See http://checkstyle.sf.net/config_metrics.html -->
    <!-- 檢查嵌套復雜度 -->
    <module name="CyclomaticComplexity">
    <property name="max" value="12"/>
    </module>
    </module>
    </module>
    Checkstyle常見的輸出結果
    1.Type is missing a javadoc commentClass 
    缺少類型說明
    2.“{” should be on the previous line
    “{” 應該位于前一行
    3.Methods is missing a javadoc comment
    方法前面缺少javadoc注釋
    4.Expected @throws tag for “Exception”
    在注釋中希望有@throws的說明
    5.“.” Is preceeded with whitespace “.”
    前面不能有空格
    6.“.” Is followed by whitespace“.”
    后面不能有空格
    7.“=” is not preceeded with whitespace
    “=” 前面缺少空格
    8.“=” is not followed with whitespace 
    “=” 后面缺少空格
    9.“}” should be on the same line 
    “}” 應該與下條語句位于同一行
    10.Unused @param tag for “unused”
    沒有參數“unused”,不需注釋
    11.Variable “CA” missing javadoc
    變量“CA”缺少javadoc注釋
    12.Line longer than 80characters 
    行長度超過80
    13.Line contains a tab character
    行含有”tab” 字符
    14.Redundant “Public” modifier
    冗余的“public” modifier
    15.Final modifier out of order with the JSL
    suggestionFinal modifier的順序錯誤
    16.Avoid using the “.*” form of import
    Import格式避免使用“.*”
    17.Redundant import from the same package
    從同一個包中Import內容
    18.Unused import-java.util.list
    Import進來的java.util.list沒有被使用
    19.Duplicate import to line 13
    重復Import同一個內容
    20.Import from illegal package
    從非法包中 Import內容
    21.“while” construct must use “{}”
    “while” 語句缺少“{}”
    22.Variable “sTest1” must be private and have accessor method
    變量“sTest1”應該是private的,并且有調用它的方法
    23.Variable “ABC” must match pattern “^[a-z][a-zA-Z0-9]*$” 
    變量“ABC”不符合命名規則“^[a-z][a-zA-Z0-9]*$”
    24.“(” is followed by whitespace 
    “(” 后面不能有空格
    25.“)” is proceeded by whitespace
    “)” 前面不能有空格
     

    碼同行的注釋 
    -->
    159        <module name="TrailingComment" />
    160    </module>
    161    <!-- 檢查翻譯文件 -->
    162    <module name="Translation" />
    163</module>
    164



    checkStyle結果分析

    參考:http://commons.apache.org/jelly/libs/http/checkstyle-report.html

    1.Missing a Javadoc comment:缺少JavaDoc注釋
    2.First sentence should end with a period:你的注釋的第一行文字結束應該加上一個"."
    3.Expected @throws tag for 'Exception':在注釋中希望有@throws的說明,在方法前得注釋中添加這樣一行:* @throws Exception if has error(異常說明)
    4.Parameter docType should be final:參數docType應該為final類型  解決方法:在參數docType前面加個final
    5.Variable “ABC” must match pattern “^[a-z][a-zA-Z0-9]*$”變量“ABC”不符合命名規則“^[a-z][a-zA-Z0-9]*$”解決方法:把這個命名改成符合規則的命名 “aBC”
    6.Utility classes should not have a public or default constructor. 接口中的內部類中不應該有公共的或者默認的構造方法
    解決方法:在內部類中,定義一個私有的構造方法,然后內部類聲明為final類型。如果前面有static,那么final還必須放在static之后
    7.'{' is not preceded with whitespace.大括號后面必須空一格

    8.'public' modifier out of order with the JLS suggestions.   public順序錯誤

    9.Method 'deleteChild' is not designed for extension - needs to be abstract, final or empty.  不是拓展或繼承的方法,必須指定abstract,final或空

     

     

    1Type is missing a javadoc commentClass  缺少類型說明

    2“{” should be on the previous line“{” 應該位于前一行。解決方法:把“{”放到上一行去

    3Methos is missing a javadoc comment 方法前面缺少javadoc注釋。解決方法:添加javadoc注釋 類似這樣:

    /**

         * set default mock parameter.(方法說明)

         * @param additionalParameters  parameter additional(參數名稱)

         * @return data manager(返回值說明)

         * @throws Exception if has error(異常說明)

         */

    4 Expected @throws tag for “Exception”在注釋中希望有@throws的說明

    解決方法:在方法前得注釋中添加這樣一行:* @throws Exception if has error(異常說明)

    5“.” Is preceeded with whitespace “.” 前面不能有空格。解決方法:把“(”前面的空格去掉

    6“.” Is followed by whitespace“.” 后面不能有空格。解決方法:把“)”后面的空格去掉

    7“=” is not preceeded with whitespace“=” 前面缺少空格。解決方法:在“=”前面加個空格

    8“=” is not followed with whitespace“=” 后面缺少空格。解決方法:在“=”后面加個空格

    9“}” should be on the same line“}” 應該與下條語句位于同一行。解決方法:把“}”放到下一行的前面

    10Unused @param tag for “unused”沒有參數“unused”,不需注釋

    解決方法:“* @param unused  parameter additional(參數名稱)” 把這行unused參數的注釋去掉“

    11Variable “CA” missing javadoc變量“CA”缺少javadoc注釋

    解決方法:在“CA“變量前添加javadoc注釋:/** CA. */(注意:一定記得加上“.”)

    12Line longer than 80characters行長度超過80  。解決方法:把它分成多行寫。必要時候,可以ctrl+shift+f

    13Line contains a tab character行含有”tab” 字符。快速解決方法:可以使用editplus中的format功能,把tab字符轉化為空格,然后保存Editplus英文版安裝文件在我機子上有。需要的可以來拷貝。注冊Editplus,點擊安裝文件中注冊的文件


    14Redundant “Public” modifier冗余的“public” modifier   。解決方法:冗余的“public”

    15Final modifier out of order with the JSL suggestion Final modifier的順序錯誤

    16Avoid using the “.*” form of importImport格式避免使用“.*”

    17Redundant import from the same package從同一個包中Import內容

    18Unused import-java.util.listImport進來的java.util.list沒有被使用。解決方法:去掉導入的多余的類

    19Duplicate import to line 13重復Import同一個內容    解決方法:去掉導入的多余的類

    20Import from illegal package從非法包中 Import內容

    21“while” construct must use “{}”  “while” 語句缺少“{}”

    22Variable “sTest1” must be private and have accessor method變量“sTest1”應該是private的,并且有調用它的方法

    23Variable “ABC” must match pattern “^[a-z][a-zA-Z0-9]*$”變量“ABC”不符合命名規則“^[a-z][a-zA-Z0-9]*$”解決方法:把這個命名改成符合規則的命名 “aBC”

    24“(” is followed by whitespace“(” 后面不能有空格 25“)”is proceeded by whitespace“)” 前面不能有空格

    解決方法:把前面或者后面的空格去掉

    25、First sentence should end with a period.解決方法:你的注釋的第一行文字結束應該加上一個"."。


    26、Redundant throws: 'NameNotFoundException' is subclass of 'NamingException'. 'NameNotFoundException '是'NamingException'的子類重復拋出異常。

    解決方法:如果拋出兩個異常,一個異常類是另一個的子類,那么只需要寫父類

    去掉NameNotFoundException異常,對應的javadoc注釋異常注釋說明也需要去掉


    27、Parameter docType should be final.  參數docType應該為final類型  解決方法:在參數docType前面加個final


    28、Line has trailing spaces.  多余的空行  解決方法:去掉這行空行


    29.Must have at least one statement.  至少一個聲明

    解決方法:} catch (NumberFormatException nfe) {

     LOG.error("Auto Renews the agreement failed", nfe);//異常捕捉里面不能為空,在異常里面加一句話。如打印等等

     

    30、'>' is not followed by whitespace.并且又有 '(' is preceded with whitespace.

    定義集合和枚舉的時候的時候,最后一個“>”后面要有空格,“(”前面不容許有空格。解決方法:去掉泛型


    31、Got an exception - java.lang.RuntimeException: Unable to get class information for @throws tag 'SystemException'.原因:不合理的throws。

    解決方法:要確保某些類型,如某些類、接口不被throws。把聲明的異常去掉。在實現類中拋出異常


    網上參考解決方法:1、這是CheckStyle報的錯。通常需要Refreh, clean/build這個Project. 如果不行,可以嘗試clean all projects, restart Eclipse.

    2、因為編譯好的類沒有在checkstyle的classpath中.所以, 只要將編譯好的class配置到在<checkstyle/>的classpath中就沒有這個問題了.另外, 還發現checkstyle的line length好像也有點問題, 明明沒有超過120個字符, 卻還是報錯.無奈, 我把Eclipse中java > code style > formatter中的Maximum line with改成了100, 然后format一下, 基本就沒有問題了


    32、File does not end with a newline.解決方法:刪掉報錯的類,新建一個同名的類,把代碼全部復制過去


    33、Utility classes should not have a public or default constructor. 接口中的內部類中不應該有公共的或者默認的構造方法

    解決方法:在內部類中,定義一個私有的構造方法,然后內部類聲明為final類型。如果前面有static,那么final還必須放在static之后


    34、Variable 'functionCode' must be private and have accessor methods.變量要改成private然后提供訪問的方法

    解決方法:給這些變量的修飾符改成private,然后提供set,get方法,并加上對應的方法javadoc注釋、參數注釋。并在返回值和參數類型前添加final。并把調用了這個變量的地方改成通過方法訪問


    35.  'X' hides a field.

    public class Foo
    {
        private int bar;

        public Foo(int bar)
        {
            this.bar = bar;
        }

        public final int getBar()
        {
            return bar;
        }
    }

    全局private int bar;和局部public Foo(int bar)的bar變量名字重復。
    解決方法:把方法里面的參數名稱改變下就可以了public Foo(int newBar)
        {
            this.bar = newBar;
        }。

     

    36、Got an exception - Unexpected character 0xfffd in identifier

    這是因為CheckStyle不能識別制定的編碼格式。

    網上參考解決方法:

    1、Eclipse中可以配置,在Other-->checker中可以指定

                2、可以修改checkstyle配置文件:

    <module name="Checker">

                <property name="severity" value="warning"/>

    <property name="charset" value="UTF-8"/>

                          <module name="TreeWalker">

                如果是UTF-8的話,就添加加粗的那條語句,就可以了。

    37、 Got an exception - java.lang.RuntimeException: Unable to get class information for @throws tag *whatever*.
        網上參考解決方法:選中CheckSytle的JavaDoc --> Method JavaDoc --> logLoadErrors。如果是CheckStyle自己加載時出錯的,打個Log就可以了,不要整出Errors嚇人。
       還有一處也可能包出同樣的錯誤。Coding Problems --> Redundant Throws --> logLoadErrors選中即可


    38、Expected @param tag for 'dataManager'.    缺少dataManager參數的注釋   解決方法:在注釋中添加@param  dataManager  DataManager

    網上一些其他錯誤的解答:
    1. Parameter X should be final.
    public class Foo
    {
        private int bar;

        public Foo(int bar)
        {
            this.bar = bar;
        }

        public final int getBar()
        {
            return bar;
        }
    }

    解釋:public Foo(int bar)的局部變量,被認為是不可改變的,檢查需要加上final關鍵字定義public Foo(final int bar)此錯誤,可以忽略不檢查。

    2. Redundant 'X' modifier.

    public interface CacheHRTreeService extends Manager {

     /**
      * Organization Tree
      * @param orgDto
      * @return
      * @throws Exception
      */
     public void setOrganization(OrganizationDTO orgDto) throws Exception;

     /**
      * Organization Tree
      * @return
      * @throws Exception
      */
     public OrganizationDTO getOrganization() throws Exception;
    ......
    }

    解釋:多余的字段。public OrganizationDTO getOrganization() throws Exception;此時public為多余的字段,因為interface定義的時候,就是public的。

    需要檢查。

    3. - Class X should be declared as final.

    解釋:對于單例設計模式,要求返回唯一的類對象。但是HRFactory和ContextFactory為優化的兩個類,不需求檢查。
    其他的單例類,依然需要進行檢查。

    4. - Method 'addChildrenId' is not designed for extension - needs to be
      abstract, final or empty.

    解釋:通過父類繼承的,此類有點特殊可以忽略此類。

    5. Variable 'id' must be private and have accessor methods.解釋:BaseHRDTO類,為父類,屬性給子類繼承,比較特殊。但是其他的類,聲名需要加上范圍'private'關鍵字。需要檢查。

    6. -Array brackets at illegal position.解釋:代碼寫法,習慣不一樣。需要檢查,僅僅提示




    配置參考說明:

    posted on 2012-05-24 17:50 japper 閱讀(10082) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 亚洲福利一区二区三区| 久久国产精品免费观看| 亚洲精品动漫在线| 久久久久一级精品亚洲国产成人综合AV区 | 亚洲人成在线播放| 亚洲国产精品无码中文字| 手机看片久久国产免费| 97热久久免费频精品99| 在线观看免费播放av片| 人人爽人人爽人人片av免费| 精品国产日韩亚洲一区91 | 99久久综合国产精品免费| 免费av一区二区三区| 一级做a免费视频观看网站| 亚洲精品无码国产片| 精品日韩99亚洲的在线发布| 亚洲国产精品自在线一区二区| 狠狠亚洲狠狠欧洲2019| 天堂亚洲免费视频| 免费少妇a级毛片| 日韩免费高清视频| 免费看片A级毛片免费看| 日韩欧美一区二区三区免费观看| 最近新韩国日本免费观看 | 亚洲精品国产精品乱码在线观看| 免费v片在线观看无遮挡| 在线免费观看色片| 女人被免费视频网站| 好先生在线观看免费播放| 妻子5免费完整高清电视| 最近高清中文字幕无吗免费看| 亚洲精品国产免费| 国内精品免费麻豆网站91麻豆| 18禁止观看免费私人影院| 国产免费一区二区三区| 日日麻批免费40分钟日本的| 国产1024精品视频专区免费| 久久天天躁狠狠躁夜夜免费观看| 黄色成人网站免费无码av| 日本高清免费不卡在线| 免费va人成视频网站全|