Android代码规范checkstyle

2、checkstyle.xml
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://checkstyle.sourceforge.net/dtds/configuration_1_3.dtd">

<!-- Generated by chen.ke -->

<module name="Checker">
<property name="severity" value="warning"/>
<property name="fileExtensions" value="java, properties, xml"/>
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>

<!--代码规范-->
<module name="TreeWalker">
<!-- 命名规范 -->
<!-- 类的命名,匹配规则默认:(^[A-Z][a-zA-Z0-9]*$),必须以大写字母开始 -->
<module name="TypeName">
<property name="tokens" value="CLASS_DEF"/>
</module>
<!-- 接口命名,匹配规则:(^I[A-Z][a-zA-Z0-9]*$),必须以大写I开始 -->
<module name="TypeName">
<property name="format" value="^I[A-Z][a-zA-Z0-9]*$"/>
<property name="tokens" value="INTERFACE_DEF"/>
</module>
<!-- 变量的检查 匹配规则默认^[a-z][a-zA-Z0-9]*$ 范围: 非static型变量 命名为小写-->
<module name="MemberName"/>
<!-- 方法名的检查 匹配规则默认^[a-z][a-zA-Z0-9]*$ 范围:方法名 命名为小写-->
<module name="MethodName"/>
<!-- 方法的参数名 匹配规则默认^[a-z][a-zA-Z0-9]*$ 范围:方法中的参数名 命名为小写-->
<module name="ParameterName "/>
<!-- 常量名的检查 匹配规则默认^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$ 范围:常量(static , final 字段) 命名为大写-->
<module name="ConstantName"/>
<!-- 包名的检测,必须以com.edencity.工程名命名,且必须全小写,$\{projectname\} -->
<module name="PackageName">
<property name="format" value="com\.edencity\.[a-z]+(\.[a-z][a-z0-9]+)*$"/>
</module>
<!--名称中缩写,驼峰规则-->
<module name="AbbreviationAsWordInName">
<property name="ignoreFinal" value="false"/>
<property name="allowedAbbreviationLength" value="1"/>
</module>
<!--重载方法不能被其他方法间隔开-->
<module name="OverloadMethodsDeclarationOrder"/>
<!--空模块的检测-->
<module name="EmptyBlock">
<property name="option" value="TEXT"/>
<property name="tokens"
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH,LITERAL_WHILE,LITERAL_FOR,LITERAL_CASE"/>
</module>

<!-- 注释规范 -->
<!-- 检查所有的interface和class,允许未知的标签-->
<module name="JavadocType">
<property name="allowUnknownTags" value="true"/>
<message key="javadoc.missing" value="类注释:缺少Javadoc注释。"/>
</module>
<!-- 检查所有方法的javadoc,可以不声明RuntimeException -->
<module name="JavadocMethod">
<property name="allowUndeclaredRTE" value="true"/>
<!--允许get set 方法没有注释-->
<property name="allowMissingPropertyJavadoc" value="true"/>
<message key="javadoc.missing" value="方法注释:缺少Javadoc注释。"/>
</module>
<!-- 检查某个变量的javadoc -->
<module name="JavadocVariable">
<message key="javadoc.missing" value="变量注释:缺少Javadoc注释。"/>
</module>
<!-- 检查方法的javadoc的注释
scope: 可以检查的方法的范围,例如:public只能检查public修饰的方法,private可以检查所有的方法
allowMissingParamTags: 是否忽略对参数注释的检查
allowMissingThrowsTags: 是否忽略对throws注释的检查
allowMissingReturnTag: 是否忽略对return注释的检查 -->
<module name="JavadocMethod">
<property name="scope" value="private"/>
<property name="allowMissingParamTags" value="true"/>
<property name="allowMissingThrowsTags" value="true"/>
<property name="allowMissingReturnTag" value="true"/>
<property name="tokens" value="METHOD_DEF"/>
<property name="allowUndeclaredRTE" value="true"/>
<property name="allowThrowsTagsForSubclasses" value="true"/>
<!--允许get set 方法没有注释-->
<property name="allowMissingPropertyJavadoc" value="true"/>
</module>
<!-- 检查类和接口的javadoc 默认不检查author 和version tags
authorFormat: 检查author标签的格式
versionFormat: 检查version标签的格式
scope: 可以检查的类的范围,例如:public只能检查public修饰的类,private可以检查所有的类
excludeScope: 不能检查的类的范围,例如:public,public的类将不被检查,但访问权限小于public的类仍然会检查,其他的权限以此类推
tokens: 该属性适用的类型,例如:CLASS_DEF,INTERFACE_DEF -->
<module name="JavadocType">
<property name="authorFormat" value="\S"/>
<property name="scope" value="protected"/>
<property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/>
</module>
<!-- 检查类变量的注释scope: 检查变量的范围,例如:public只能检查public修饰的变量,private可以检查所有的变量 -->
<module name="JavadocVariable">
<property name="scope" value="private"/>
</module>
<!-- 每行不超过150个字,默认80-->
<module name="LineLength">
<property name="max" value="150"/>
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
</module>
<!-- 即制方法和构造函数行数不超过多少行,默认160行(不包括空行) -->
<module name="MethodLength">
<property name="countEmpty" value="false"/>
<property name="tokens" value="METHOD_DEF,CTOR_DEF"/>
<property name="max" value="160"/>
</module>
<!--空行规则-->
<module name="EmptyLineSeparator">
<property name="allowNoEmptyLineBetweenFields" value="true"/>
</module>
<!-- 不能出现大块空白区域 -->
<module name="GenericWhitespace">
<message key="ws.followed"
value="GenericWhitespace ''{2}'' is followed by whitespace."/>
<message key="ws.preceded"
value="GenericWhitespace ''{2}'' is preceded with whitespace."/>
<message key="ws.illegalFollow"
value="GenericWhitespace ''{2}'' should followed by whitespace."/>
<message key="ws.notPreceded"
value="GenericWhitespace ''{2}'' is not preceded with whitespace."/>
</module>
<!-- 检查是否有未初始化的循环变量 -->
<module name="EmptyForInitializerPad"/>
<!-- 不许出现空语句(未引用) int a = 0; //正常 ; // 这里就是一个空的语句 -->
<module name="EmptyStatement"/>
<!-- 限制for循环最多嵌套3层 -->
<module name="NestedForDepth">
<property name="max" value="3"/>
</module>
<!-- if最多嵌套5层 -->
<module name="NestedIfDepth">
<property name="max" value="5"/>
</module>
<!-- 确保声明被初始化,例:对象是null,数字和字符是0 -->
<module name="ExplicitInitialization"/>
<!-- 同一行不能有多个声明 -->
<module name="MultipleVariableDeclarations"/>
<!-- 检查左侧大括号 左侧大括号必须放在前一行代码的行尾 -->
<module name="LeftCurly">
<property name="severity" value="warning"/>
<message key="line.previous" value="左侧大括号必须放在前一行代码的行尾,不计入到80个字符内"/>
</module>
<!-- 对关键字else、try和catch的右侧大括号放置位置进行检查,与下一语句放在同一行 -->
<module name="RightCurly">
<property name="severity" value="warning"/>
<property name="option" value="same"/>
</module>
<!--检查switch中case后是否加入了跳出语句,例如:return、break、throw、continue -->
<module name="FallThrough"/>
<!-- 禁止使用System.out.println -->
<module name="Regexp">
<property name="format" value="System\.out\.println"/>
<property name="illegalPattern" value="true"/>
</module>
<!--避免 null.equals("sss")情况-->
<module name="EqualsAvoidNull"/>
<!-- 异常抛出数量定义 -->
<module name="ThrowsCount">
<metadata name="net.sf.eclipsecs.core.comment" value="最大异常抛出个数"/>
<property name="max" value="3"/>
</module>
<!-- 参数个数定义 最多三个-->
<module name="ParameterNumber">
<property name="max" value="7"/>
</module>
<!-- return个数 3个-->
<module name="ReturnCount">
<property name="max" value="3"/>
</module>
<!--try catch 异常处理数量 3-->
<module name="NestedTryDepth ">
<property name="max" value="3"/>
</module>
<!-- 每一行只能定义一个变量 -->
<module name="MultipleVariableDeclarations"/>
<!--- 字符串比较必须使用 equals() -->
<module name="StringLiteralEquality"/>
<!-- 限制导入多余的包,例如java.lang.String -->
<module name="RedundantImport"/>
<!-- 限制导入未使用过的类 -->
<module name="UnusedImports"/>
<!-- 检查是否导入了不必显示导入的类-->
<module name="RedundantImport"/>
<!-- 检查是否导入的包没有使用-->
<module name="UnusedImports"/>
<!-- 代码缩进 -->
<module name="Indentation"/>
<!-- ModifierOrder 检查修饰符的顺序,默认是 public,protected,private,abstract,static,final,transient,volatile,synchronized,native -->
<module name="ModifierOrder">
</module>
<!-- 检查是否有多余的修饰符,例如:接口中的方法不必使用public、abstract修饰 -->
<module name="RedundantModifier">
</module>
<!--检查再定义数组时,采用java风格还是c风格,例如:int[] num是java风格,int num[]是c风格。默认是java风格-->
<module name="ArrayTypeStyle">
</module>
<!--检查在重写了equals方法后是否重写了hashCode方法 -->
<module name="EqualsHashCode"/>
<!--检查switch语句是否有‘default’从句 -->
<module name="MissingSwitchDefault"/>
<!--检查是否在long类型是否定义了大写的L.字母小写l和数字1(一)很相似。 -->
<module name="UpperEll"/>
<!--检查class成员属性可见性。只有static final 修饰的成员是可以public的。其他的成员属性必需是private的,除非属性protectedAllowed或者packageAllowed设置了true.强制封装 -->
<module name="VisibilityModifier"/>
</module>
</module>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值