在checkstyle中如何c 自定义泛型枚举和泛型

格式:doc&&&
贡献者:Zhengshuxia
上传时间: 15:03
此文档归属以下专题
暂无相关专题
暂无相关文档
-------------
新增文件夹...
(多个标签用逗号分隔)
&Java中的集合、枚举、泛型
分享到:&&
下载本文档需要登录,并付出相应积分。()
文件大小:649KB
所需积分:& 30
&2006-, All rights reserved.视频054 自定义泛型与泛型的常见陷阱
视频054 自定义泛型与泛型的常见陷阱
分享给好友
您需要先安装&,才能下载视频哦
用优酷App或微信扫一扫,在手机上继续观看。
视频054 自定义泛型与泛型的常见陷阱
分享给站外好友
把视频贴到Blog或BBS
flash地址:
<input type="text" class="form_input form_input_s" id="link3" value=''>
<input id="link4" type="text" class="form_input form_input_s" value=''>
稍后补充视频简介
北京胜思源Java培训第二部分
播放数: 1,667
播放数:37,691
最近更新:1年前
播放数:83,285
最近更新:5个月前
播放数:22,632
最近更新:1年前
播放数:17,856
最近更新:3个月前
播放数:8,722
最近更新:1年前
播放数:11,154
最近更新:1年前
节目制作经营许可证京字670号
京公网安备号
药品服务许可证(京)-经营-如何在checkstyle中定义枚举_百度知道
如何在checkstyle中定义枚举
&module name=&憨常封端莩得凤全脯户Checker&&
Javadoc Comments1
&module name=&PackageHtml&/&
&module name=&TreeWalker&&
Javadoc Comments2
&module name=&JavadocType&/&
&module name=&JavadocMethod&&
&property name=&scope& value=&protected&/&
&property name=&allowMissingPropertyJavadoc & value=&true&/&
&property name=&logLoadErrors& value=&true&/&
&property name=&suppressLoadErrors& value=&true&/&
&module name=&JavadocVariable&&
&property name=&scope& value=&public&/&
&module name=&JavadocStyle&&
&property name=&checkFirstSentence& value=&false&/&
&property name=&checkEmptyJavadoc& value=&true&/&
&property name=&checkHtml& value=&false&/&
&!--&module name=&WriteTag&&
&property name=&tag& value=&@author,@param,@return&/&
&/module& --&
全部是针对枚举的吗?public enum EnumCompareOpr {equal,notEqual,contain,notC }比如说英文单词组合,每个单词首字母大写
网络工程师
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁剑客,现在全新改版。剑客是IT一个自由化阅读平台,这里包涵IT界五大分类,科技,设计,创业 ,互联网,数码,剑客通过智能化数据分析向您推荐,您感兴趣的文章。
1.Missing a Javadoc comment:缺少JavaDoc注释 2.First sentence should end with a period:你的注释的第一行文字结束应该加上一个&.& 3.Expected @throws tag for &#8216;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.'{&#8216; is not preceded with whitespace.大括号后面必须空一&#26684;
8.&#8217;public&#8217; modifier out of order with the JLS suggestions. public顺序错误
9.Method &#8216;deleteChild&#8217; is not designed for extension &#8211; 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注释 类&#20284;这样:
* set default mock parameter.(方法说明)
* @param additionalParameters parameter additional(参数名称)
* @return data manager(返回&#20540;说明)
* @throws Exception if has error(异常说明)
4 Expected @throws tag for “Exception”在注释中希望有@throws的说明
解决方法:在方法前得注释中添加这样一行:* @throws Exception if has error(异常说明)
5“.” Is preceeded with whitespace “.” 前面不能有空&#26684;。解决方法:把“(”前面的空&#26684;去掉
6“.” Is followed by whitespace“.” 后面不能有空&#26684;。解决方法:把“)”后面的空&#26684;去掉
7“=” is not preceeded with whitespace“=” 前面缺少空&#26684;。解决方法:在“=”前面加个空&#26684;
8“=” is not followed with whitespace“=” 后面缺少空&#26684;。解决方法:在“=”后面加个空&#26684;
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&#043;shift&#043;f
13Line contains a tab character行含有”tab” 字符。快速解决方法:可以使用editplus中的format功能,把tab字符转化为空&#26684;,然后保存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&#26684;式避免使用“.*”
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“(” 后面不能有空&#26684; 25“)”is proceeded by whitespace“)” 前面不能有空&#26684;
解决方法:把前面或者后面的空&#26684;去掉
25、First sentence should end with a period.解决方法:你的注释的第一行文字结束应该加上一个&.&。
26、Redundant throws: &#8216;NameNotFoundException&#8217; is subclass of &#8216;NamingException&#8217;. &#8216;NameNotFoundException &#8216;是&#8217;NamingException&#8217;的子类重复抛出异常。
解决方法:如果抛出两个异常,一个异常类是另一个的子类,那么只需要写父类
去掉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、&#8217;&&#8217; is not followed by whitespace.并且又有 &#8216;(&#8216; is preceded with whitespace.
定义集合和枚举的时候的时候,最后一个“&”后面要有空&#26684;,“(”前面不容许有空&#26684;。解决方法:去掉泛型
31、Got an exception &#8211; java.lang.RuntimeException: Unable to get class information for @throws tag &#8216;SystemException&#8217;.原因:不合理的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 &#8216;functionCode&#8217; must be private and have accessor methods.变量要改成private然后提供访问的方法
解决方法:给这些变量的修饰符改成private,然后提供set,get方法,并加上对应的方法javadoc注释、参数注释。并在返回&#20540;和参数类型前添加final。并把调用了这个变量的地方改成通过方法访问
35. &#8216;X&#8217; hides a field.
public class Foo {
public Foo(int bar) { this.bar = }
public final int getBar() {
全局和局部public Foo(int bar)的bar变量名字重复。 解决方法:把方法里面的参数名称改变下就可以了public Foo(int newBar) { this.bar = newB }。
36、Got an exception &#8211; Unexpected character 0xfffd in identifier
这是因为CheckStyle不能识别制定的编码&#26684;式。
网上参考解决方法:
1、Eclipse中可以配置,在Other&#8211;&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 &#8211; java.lang.RuntimeException: Unable to get class information for @throws tag *whatever*. 网上参考解决方法:选中CheckSytle的JavaDoc &#8211;& Method JavaDoc &#8211;& logLoadErrors。如果是CheckStyle自己加载时出错的,打个Log就可以了,不要整出Errors吓人。 还有一处也可能包出同样的错误。Coding Problems &#8211;& Redundant Throws &#8211;& logLoadErrors选中即可
38、Expected @param tag for &#8216;dataManager&#8217;. 缺少dataManager参数的注释 解决方法:在注释中添加@param dataManager DataManager
网上一些其他错误的解答: 1. Parameter X should be final. public class Foo {
public Foo(int bar) { this.bar = }
public final int getBar() { } }
解释:public Foo(int bar)的局部变量,被认为是不可改变的,检查需要加上final关键字定义public Foo(final int bar)此错误,可以忽略不检查。
2. Redundant &#8216;X&#8217; modifier.
public interface CacheHRTreeService extends Manager {
/** * Organization Tree * @param orgDto * @return * @throws Exception */ public void setOrganization(OrganizationDTO orgDto) throws E
/** * Organization Tree * @return * @throws Exception */ public OrganizationDTO getOrganization() throws E &#8230;&#8230; }
解释:多余的字段。public OrganizationDTO getOrganization() throws E此时public为多余的字段,因为interface定义的时候,就是public的。
需要检查。
3. &#8211; Class X should be declared as final.
解释:对于单例设计模式,要求返回唯一的类对象。但是HRFactory和ContextFactory为优化的两个类,不需求检查。 其他的单例类,依然需要进行检查。
4. &#8211; Method &#8216;addChildrenId&#8217; is not designed for extension &#8211; needs to be abstract, final or empty.
解释:通过父类继承的,此类有点特殊可以忽略此类。
5. Variable &#8216;id&#8217; must be private and have accessor methods.解释:BaseHRDTO类,为父类,属性给子类继承,比较特殊。但是其他的类,声名需要加上范围&#8217;private&#8217;关键字。需要检查。
6. -Array brackets at illegal position.解释:代码写法,习惯不一样。需要检查,仅仅提示
剑客说: &
or分享 (0)&&1&?xml&version="1.0"?&&&2&!DOCTYPE&module&PUBLIC&&3&&&&"-//Puppy&Crawl//DTD&Check&Configuration&1.2//EN"&&4&&&&"/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&&&&&&/docs/books/jls/second_edition/html/index.html&12&13&&&&-&the&Sun&Code&Conventions&at&/docs/codeconv/&14&15&&&&-&the&Javadoc&guidelines&at&16&&&&&&/j2se/javadoc/writingdoccomments/index.html&17&18&&&&-&the&JDK&Api&documentation&/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"&/&<span style="color: #0&&&&&&&&&/module&<span style="color: #1&&&&&&&&&!--&不许内部赋值&--&<span style="color: #2&&&&&&&&&module&name="InnerAssignment"&/&<span style="color: #3&&&&&&&&&!--&绝对不能容忍魔法数&--&<span style="color: #4&&&&&&&&&module&name="MagicNumber"&/&<span style="color: #5&&&&&&&&&!--&循环控制变量不能被修改&--&<span style="color: #6&&&&&&&&&module&name="ModifiedControlVariable"&/&<span style="color: #7&&&&&&&&&!--&多余的throw&--&<span style="color: #8&&&&&&&&&module&name="RedundantThrows"&/&<span style="color: #9&&&&&&&&&!--&不许使用未被简化的条件表达式&--&<span style="color: #0&&&&&&&&&module&name="SimplifyBooleanExpression"&/&<span style="color: #1&&&&&&&&&!--&不许使用未被简化的布尔返回值&--&<span style="color: #2&&&&&&&&&module&name="SimplifyBooleanReturn"&/&<span style="color: #3&&&&&&&&&!--&String的比较不能用!=&和&==&--&<span style="color: #4&&&&&&&&&module&name="StringLiteralEquality"&/&<span style="color: #5&&&&&&&&&!--&if最多嵌套3层&--&<span style="color: #6&&&&&&&&&module&name="NestedIfDepth"&<span style="color: #7&&&&&&&&&&&&&property&name="max"&value="3"&/&<span style="color: #8&&&&&&&&&/module&<span style="color: #9&&&&&&&&&!--&try最多被嵌套1层&--&<span style="color: #0&&&&&&&&&module&name="NestedTryDepth"&/&<span style="color: #1&&&&&&&&&!--&clone方法必须调用了super.clone()&--&<span style="color: #2&&&&&&&&&module&name="SuperClone"&/&<span style="color: #3&&&&&&&&&!--&finalize&必须调用了super.finalize()&--&<span style="color: #4&&&&&&&&&module&name="SuperFinalize"&/&<span style="color: #5&&&&&&&&&!--&不能catch&java.lang.Exception&--&<span style="color: #6&&&&&&&&&module&name="IllegalCatch"&<span style="color: #7&&&&&&&&&&&&&property&name="illegalClassNames"&value="java.lang.Exception"&/&<span style="color: #8&&&&&&&&&/module&<span style="color: #9&&&&&&&&&!--&JUnitTestCase&的核心方法存在。&--&<span style="color: #0&&&&&&&&&module&name="JUnitTestCase"&/&<span style="color: #1&&&&&&&&&!--&一个方法中最多有3个return&--&<span style="color: #2&&&&&&&&&module&name="ReturnCount"&<span style="color: #3&&&&&&&&&&&&&property&name="max"&value="3"&/&<span style="color: #4&&&&&&&&&/module&<span style="color: #5&&&&&&&&&!--&不许对方法的参数赋值&--&<span style="color: #6&&&&&&&&&module&name="ParameterAssignment"&/&<span style="color: #7&&&&&&&&&!--&不许有同样内容的String&--&<span style="color: #8&&&&&&&&&module&name="MultipleStringLiterals"&/&<span style="color: #9&&&&&&&&&!--&同一行不能有多个声明&--&<span style="color: #0&&&&&&&&&module&name="MultipleVariableDeclarations"&/&<span style="color: #1&&&&&&&&&!--&各种量度&--&<span style="color: #2&&&&&&&&&!--&布尔表达式的复杂度,不超过3&--&<span style="color: #3&&&&&&&&&module&name="BooleanExpressionComplexity"&/&<span style="color: #4&&&&&&&&&!--&类数据的抽象耦合,不超过7&--&<span style="color: #5&&&&&&&&&module&name="ClassDataAbstractionCoupling"&/&<span style="color: #6&&&&&&&&&!--&类的分散复杂度,不超过20&--&<span style="color: #7&&&&&&&&&module&name="ClassFanOutComplexity"&/&<span style="color: #8&&&&&&&&&!--&函数的分支复杂度,不超过10&--&<span style="color: #9&&&&&&&&&module&name="CyclomaticComplexity"&/&<span style="color: #0&&&&&&&&&!--&NPath复杂度,不超过200&--&<span style="color: #1&&&&&&&&&module&name="NPathComplexity"&/&<span style="color: #2&&&&&&&&&!--&杂项&--&<span style="color: #3&&&&&&&&&!--&禁止使用System.out.println&--&<span style="color: #4&&&&&&&&&module&name="GenericIllegalRegexp"&<span style="color: #5&&&&&&&&&&&&&property&name="format"&value="System\.out\.println"&/&<span style="color: #6&&&&&&&&&&&&&property&name="ignoreComments"&value="true"&/&<span style="color: #7&&&&&&&&&/module&<span style="color: #8&&&&&&&&&!--&不许使用与代
主页:&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""/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.&#8220;{&#8221;&should&be&on&the&previous&line&#8220;{&#8221;&应该位于前一行3.Methods&is&missing&a&javadoc&comment方法前面缺少javadoc注释4.Expected&&#64;throws&tag&for&&#8220;Exception&#8221;在注释中希望有&#64;throws的说明5.&#8220;.&#8221;&Is&preceeded&with&whitespace&&#8220;.&#8221;前面不能有空格6.&#8220;.&#8221;&Is&followed&by&whitespace&#8220;.&#8221;后面不能有空格7.&#8220;=&#8221;&is&not&preceeded&with&whitespace&#8220;=&#8221;&前面缺少空格8.&#8220;=&#8221;&is&not&followed&with&whitespace&&#8220;=&#8221;&后面缺少空格9.&#8220;}&#8221;&should&be&on&the&same&line&&#8220;}&#8221;&应该与下条语句位于同一行10.Unused&&#64;param&tag&for&&#8220;unused&#8221;没有参数&#8220;unused&#8221;,不需注释11.Variable&&#8220;CA&#8221;&missing&javadoc变量&#8220;CA&#8221;缺少javadoc注释12.Line&longer&than&80characters&行长度超过8013.Line&contains&a&tab&character行含有&#8221;tab&#8221;&字符14.Redundant&&#8220;Public&#8221;&modifier冗余的&#8220;public&#8221;&modifier15.Final&modifier&out&of&order&with&the&JSLsuggestionFinal&modifier的顺序错误16.Avoid&using&the&&#8220;.*&#8221;&form&of&importImport格式避免使用&#8220;.*&#8221;17.Redundant&import&from&the&same&package从同一个包中Import内容18.Unused&import-java.util.listImport进来的java.util.list没有被使用19.Duplicate&import&to&line&13重复Import同一个内容20.Import&from&illegal&package从非法包中&Import内容21.&#8220;while&#8221;&construct&must&use&&#8220;{}&#8221;&#8220;while&#8221;&语句缺少&#8220;{}&#8221;22.Variable&&#8220;sTest1&#8221;&must&be&private&and&have&accessor&method变量&#8220;sTest1&#8221;应该是private的,并且有调用它的方法23.Variable&&#8220;ABC&#8221;&must&match&pattern&&#8220;^[a-z][a-zA-Z0-9]*$&#8221;&变量&#8220;ABC&#8221;不符合命名规则&#8220;^[a-z][a-zA-Z0-9]*$&#8221;24.&#8220;(&#8221;&is&followed&by&whitespace&&#8220;(&#8221;&后面不能有空格25.&#8220;)&#8221;&is&proceeded&by&whitespace&#8220;)&#8221;&前面不能有空格&码同行的注释&--&<span style="color: #9&&&&&&&&&module&name="TrailingComment"&/&<span style="color: #0&&&&&/module&<span style="color: #1&&&&&!--&检查翻译文件&--&<span style="color: #2&&&&&module&name="Translation"&/&<span style="color: #3&/module&<span style="color: #4checkStyle结果分析
1.Missing a Javadoc comment:缺少JavaDoc注释2.First sentence should end with a period:你的注释的第一行文字结束应该加上一个"."3.Expected &#64;throws tag for 'Exception':在注释中希望有&#64;throws的说明,在方法前得注释中添加这样一行:* &#64;throws Exception if has error(异常说明)4.Parameter docType should be final:参数docType应该为final类型& 解决方法:在参数docType前面加个final5.Variable &#8220;ABC&#8221; must match pattern &#8220;^[a-z][a-zA-Z0-9]*$&#8221;变量&#8220;ABC&#8221;不符合命名规则&#8220;^[a-z][a-zA-Z0-9]*$&#8221;解决方法:把这个命名改成符合规则的命名 &#8220;aBC&#8221;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&#8220;{&#8221; should be on the previous line&#8220;{&#8221; 应该位于前一行。解决方法:把&#8220;{&#8221;放到上一行去
3Methos is missing a javadoc comment 方法前面缺少javadoc注释。解决方法:添加javadoc注释 类似这样:
&&&& * set default mock parameter.(方法说明)
&&&& * &#64;param additionalParameters& parameter additional(参数名称)
&&&& * &#64;return data manager(返回值说明)
&&&& * &#64;throws Exception if has error(异常说明)
4 Expected &#64;throws tag for &#8220;Exception&#8221;在注释中希望有&#64;throws的说明
解决方法:在方法前得注释中添加这样一行:* &#64;throws Exception if has error(异常说明)
5&#8220;.&#8221; Is preceeded with whitespace &#8220;.&#8221; 前面不能有空格。解决方法:把&#8220;(&#8221;前面的空格去掉
6&#8220;.&#8221; Is followed by whitespace&#8220;.&#8221; 后面不能有空格。解决方法:把&#8220;)&#8221;后面的空格去掉
7&#8220;=&#8221; is not preceeded with whitespace&#8220;=&#8221; 前面缺少空格。解决方法:在&#8220;=&#8221;前面加个空格
8&#8220;=&#8221; is not followed with whitespace&#8220;=&#8221; 后面缺少空格。解决方法:在&#8220;=&#8221;后面加个空格
9&#8220;}&#8221; should be on the same line&#8220;}&#8221; 应该与下条语句位于同一行。解决方法:把&#8220;}&#8221;放到下一行的前面
10Unused &#64;param tag for &#8220;unused&#8221;没有参数&#8220;unused&#8221;,不需注释
解决方法:&#8220;* &#64;param unused& parameter additional(参数名称)&#8221; 把这行unused参数的注释去掉&#8220;
11Variable &#8220;CA&#8221; missing javadoc变量&#8220;CA&#8221;缺少javadoc注释
解决方法:在&#8220;CA&#8220;变量前添加javadoc注释:/** CA. */(注意:一定记得加上&#8220;.&#8221;)
12Line longer than 80characters行长度超过80& 。解决方法:把它分成多行写。必要时候,可以ctrl+shift+f
13Line contains a tab character行含有&#8221;tab&#8221; 字符。快速解决方法:可以使用editplus中的format功能,把tab字符转化为空格,然后保存Editplus英文版安装文件在我机子上有。需要的可以来拷贝。注册Editplus,点击安装文件中注册的文件
14Redundant &#8220;Public&#8221; modifier冗余的&#8220;public&#8221; modifier&& 。解决方法:冗余的&#8220;public&#8221;
15Final modifier out of order with the JSL suggestion Final modifier的顺序错误
16Avoid using the &#8220;.*&#8221; form of importImport格式避免使用&#8220;.*&#8221;
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&#8220;while&#8221; construct must use &#8220;{}&#8221;& &#8220;while&#8221; 语句缺少&#8220;{}&#8221;
22Variable &#8220;sTest1&#8221; must be private and have accessor method变量&#8220;sTest1&#8221;应该是private的,并且有调用它的方法
23Variable &#8220;ABC&#8221; must match pattern &#8220;^[a-z][a-zA-Z0-9]*$&#8221;变量&#8220;ABC&#8221;不符合命名规则&#8220;^[a-z][a-zA-Z0-9]*$&#8221;解决方法:把这个命名改成符合规则的命名 &#8220;aBC&#8221;
24&#8220;(&#8221; is followed by whitespace&#8220;(&#8221; 后面不能有空格 25&#8220;)&#8221;is proceeded by whitespace&#8220;)&#8221; 前面不能有空格
解决方法:把前面或者后面的空格去掉
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.
定义集合和枚举的时候的时候,最后一个&#8220;&&#8221;后面要有空格,&#8220;(&#8221;前面不容许有空格。解决方法:去掉泛型
31、Got an exception - java.lang.RuntimeException: Unable to get class information for &#64;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{&&&
&&& public Foo(int bar)&&& {&&&&&&& this.bar =&&& }
&&& public final int getBar()&&& {&&&&&&&&&& }}
全局和局部public Foo(int bar)的bar变量名字重复。解决方法:把方法里面的参数名称改变下就可以了public Foo(int newBar)&&& {&&&&&&& this.bar = newB&&& }。
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 &#64;throws tag *whatever*.&&& 网上参考解决方法:选中CheckSytle的JavaDoc --& Method JavaDoc --& logLoadErrors。如果是CheckStyle自己加载时出错的,打个Log就可以了,不要整出Errors吓人。&& 还有一处也可能包出同样的错误。Coding Problems --& Redundant Throws --& logLoadErrors选中即可
38、Expected &#64;param tag for 'dataManager'.&&& 缺少dataManager参数的注释&& 解决方法:在注释中添加&#64;param& dataManager& DataManager
网上一些其他错误的解答:1. Parameter X should be final.public class Foo{&&&
&&& public Foo(int bar)&&& {&&&&&&& this.bar =&&& }
&&& public final int getBar()&&& {&&&&&&&&&& }}
解释:public Foo(int bar)的局部变量,被认为是不可改变的,检查需要加上final关键字定义public Foo(final int bar)此错误,可以忽略不检查。
2. Redundant 'X' modifier.
public interface CacheHRTreeService extends Manager {
&/**& * Organization Tree& * &#64;param orgDto& * &#64;return& * &#64;throws Exception& */&public void setOrganization(OrganizationDTO orgDto) throws E
&/**& * Organization Tree& * &#64;return& * &#64;throws Exception& */&public OrganizationDTO getOrganization() throws E......}
解释:多余的字段。public OrganizationDTO getOrganization() throws E此时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.解释:代码写法,习惯不一样。需要检查,仅仅提示配置参考说明:}

我要回帖

更多关于 泛型类型定义 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信