`
qq327463297
  • 浏览: 8120 次
社区版块
存档分类
最新评论

代码规范

    博客分类:
  • java
阅读更多

       最近在改项目里面的违规代码,是使用sonar进行检查的,checkstyle、PMD、Findbugs以及sonar本身的代码规范,修改的过程记录一下。

1、* hides a field

问题说明:在方法里面命名的变量和成员属性名字冲突

修改建议:修改方法的变量名

2、Avoid printStackTrace(); use a logger call instead.

问题说明:在扑捉到异常以后,直接调用printStackTrace()

修改建议:使用logger来记录日志

修改理由:使用logger可以统一控制日志级别,控制日志的输出路径,还可以异步输出,提升性能……

3、A method/constructor shouldn't explicitly throw java.lang.Exception

问题说明:方法直接抛出了Exception而不是具体的异常

修改建议:抛出异常的时候,需要明确抛出具体的异常

4、Avoid throwing raw exception types.

问题说明:抛出了原始的异常类型

修改建议:抛出具体的异常,不要抛出原始的异常

5、Avoid using if statements without curly braces

问题说明:if语句没有使用大括号

修改建议:即使if语句下面只有一句话,也需要加上大括号

6、No need to check for null before an instanceof

问题说明:代码中可能会出现这样的代码if(example != null && example instanceof String),实际上,不需要前面的判空,如果example为空example instanceof String 会返回false

7、Unread field *

问题说明:类中的成员属性除了set方法以外,没有其他地方调用

修改建议:删除无用的成员属性

8、Consider simply returning the value vs storing it in local variable '*'

问题说明:

//我们可能会写这样的代码
String result = findXXX();
return result;
//应该改为
return findXXX();

 9、String.indexOf(char) is faster than String.indexOf(String).

问题说明:使用indexOf的时候,如果里面只有一个字符,需要用char类型的

10、Expression can be simplified.

问题说明:可能会写if(isSuccess==false),这样的代码可以改成if(!isSuccess)

11、Redundant comparison of non-null value to null in *

代码示例:

//example是一个list
if(example == null || example.size() == 0) {
	return;
}
if(example != null && example.size() > 0) {
	doSomething();
}

问题说明:从上面的代码里面可以看出,其实第二个if的判断是没有必要的

修改建议:去掉无用的判断

12、Dead store to tempCoupons in *

代码示例:

List example = new ArrayList();
example = finxXXX();
问题说明:未用的局部变量,example没有必要new出来

 

修改建议:直接改成

List example = finxXXX();

=====后续修改继续补上

0
8
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics