CheckStyle報錯的常見問題及解決方式
1 提示:Type is missing a javadoc commentClass
說明:缺少型別說明
解決方法:增加javadoc說明
2 提示:“{” should be on the previous line
說明:“{”應該位於前一行。
解決方法:把“{”放到上一行去
3 提示:Methos is missing a javadoc comment
說明:方法前面缺少javadoc註釋。
解決方法:新增javadoc註釋
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
說明:“}” 應該與下條語句位於同一行。
解決方法:把“}”放到下一行的前面
10 提示:Unused @param tag for “unused”
說明:沒有引數“unused”,不需註釋
解決方法:“* @param unusedparameter additional(引數名稱)” 把這行unused引數的註釋去掉“
11 提示: Variable “CA” missingjavadoc
說明:變數“CA”缺少javadoc註釋
解決方法:在“CA“變數前新增javadoc註釋:/** CA. */(注意:一定記得加上CA後面的“.”)
12 提示: Line longer than 80characters
說明:行長度超過80 。
解決方法:把它分成多行寫。必要時候,可以ctrl+shift+f
13 提示:Line contains a tab character
說明:行含有”tab” 字元。
14 提示:Redundant “Public” modifier
說明:冗餘的“public” modifier 。
解決方法:冗餘的“public”
15 提示:Final modifier out of order with the JSL suggestion
說明:Final modifier的順序錯誤
16 提示: Avoid using the “.*” formof import
說明:Import格式避免使用“.*”
17 提示:Redundant import from the same package
說明:從同一個包中Import內容
18 提示: Unusedimport-java.util.list
說明:Import匯入進來的java.util.list沒有被使用。
解決方法:去掉匯入的多餘的類
19 提示:Duplicate import to line 13
說明:重複Import同一個內容
解決方法:去掉匯入的多餘的類
20 提示: Import from illegalpackage
說明:從非法包中 Import內容
21 提示:“while” construct must use “{}”
說明:“while” 語句缺少“{}”
22 提示: Variable “sTest1” must beprivate and have accessor method
說明:變數“sTest1”應該是private的,並且有呼叫它的方法
23 提示: Variable “ABC” must matchpattern “^[a-z][a-zA-Z0-9]*$”
說明:變數“ABC”不符合命名規則“^[a-z][a-zA-Z0-9]*$”
解決方法:把這個命名改成符合規則的命名 “aBC”
24 提示:“(” is followed by whitespace “)”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 onestatement.
說明: 至少有一個宣告
解決方法:try{}catch(){}中的異常捕捉裡面不能為空,在異常裡面加一句話。如列印等
30 提示:'>' is not followed by whitespace.並且又有 '('is preceded with whitespace.
說明:定義集合和列舉的時候的時候,最後一個“>”後面要有空格,“(”前面不容許有空格。
解決方法:去掉泛型(通常是泛型的地方容易出這個問題)
31 提示:Got an exception - java.lang.RuntimeException: Unable to get classinformation 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中的Maximumline with改成了100, 然後format一下, 基本就沒有問題了
32 提示: File does not end with anewline.
解決方法:刪掉報錯的類,新建一個同名的類,把程式碼全部複製過去
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.
說明:全域性private int X;和區域性publicFoo(int X)的X變數名字重複。
解決方法:把方法裡面的引數名稱改變下就可以了public Foo(int newBar)
36 提示: Got an exception -Unexpected character 0xfffd in identifier
說明:這是因為CheckStyle不能識別制定的編碼格式。
網上參考解決方法:
1、Eclipse中可以配置,在Other-->checker中可以指定
2、可以修改checkstyle配置檔案:
<modulename="Checker">
<propertyname="severity" value="warning"/>
<property name="charset"value="UTF-8"/>
<modulename="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