CheckStyle報錯的常見問題及解決方式


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM