這裡的有些check有個公共的屬性tokens意思是該check應用的范圍例如同樣是檢查方法的長度普通方法可能最多可以有行而構造函數則最多只能有行這時雖然同樣是使用MethodLength這個check但是可以用tokens這個屬性進行區分如下xml文件的片段
這其中應用了兩次MethodLength第一次的tokens定義為METHOD_DEF即普通的方法第二次的tokens定義為CTOR_DEF即構造函數並且在此定義了與缺省值不同的值即這樣CheckStyle可以根據方法的種類不同而執行不同的check策略CheckStyle也定義了大量的諸如CTOR_DEF形式的tokens類型應用於不同的check中的tokens其定義在compuppycrawltoolscheckstyleapiTokenTypes類中這些Tokens實際上是對源代碼文件進行拆分後做對應的時候的一些標志類似編譯中的語法分析CheckStyle的原理應該就是在對源代碼做語法分析後針對這些Tokens的內容比對預先設定好的代碼寫作策略並給出對比的結果TokenTypes類內容很多這裡就不一一列舉了
下面是對具體的check的描述這些check可以被分為了類如下所示
===== CHECK STYLE ========
Annotations JDK中的Annotation相關(未展開)
Block Checks 代碼塊相關
Class Design 類設計相關
Coding 編碼相關
Duplicate Code 冗余代碼
Headers 源文件的頭
Imports 引入包相關
Javadoc Comments JavaDoc相關
Metrics 復雜度分析
Miscellaneous 其它
Modifiers 修飾符相關
Naming Conventions 命名規范
Regexp 正則表達式相關
Size Violations 文件大小等相關
Whitespace 空格處理相關
==========================
具體的內容由於比較多我寫在了一個單獨的WORD文檔中有了這些預置的check基本可以滿足規范編碼的要求了在Myeclipse的環境下可以通過對Formatter的定義在format的過程中可以自動滿足一些check的要求這部分我會在《應用CheckStyle檢查代碼和Formatter規范代碼》中予以詳細說明
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28941.html