美文网首页
Sonar常见问题总结

Sonar常见问题总结

作者: 莫失莫忘X3 | 来源:发表于2020-10-21 20:29 被阅读0次

1.Try catch异常输出printStackTrace(),相当于直接打印到控制台,不利于后续排查错误,应该用Loggers来处理


image.png

2.异常处理应保留原始异常


image.png
3.将连接的字符串传递到日志记录方法也可能导致不必要的性能消耗,因为每次调用该方法时将执行级联,无论日志级别是否足够低以显示消息
image.png

4.IO资源应该在使用后关闭


image.png
image.png
5.Java7引入“<>”来减少泛型代码的冗长性。例如,不必在列表的声明和构造函数中声明列表的类型,现在可以使用<>来简化构造函数声明,编译器将推断该类型
image.png
6.在代码中不应该忽略中断异常
image.png
7.不要使用双构造初始化对象,容易让维护者迷惑且可能导致内存泄漏
image.png

8.工具类不应该有public的构造器,也就是工具类至少要定义一个non-public的构造器


image.png
9.公共的静态成员应该加上final来修饰
image.png
10.不应使用"BigDecimal(double)",因为浮点的不精确,可能使用BigDecimal(double)得不到期望的值,双精度问题。
image.png
11.compareTo可能返回不是具体的值(除0外),建议用 >0、<0、=0。(compareTo()是两个串对象比较大小,返回一个整数值,如果调用串对象大,返回正整数,反之,返回负整数。相等则返回0。返回的值是两个串首次出现不同字符的ASCII的差值)
image.png
12.不应声明变量,然后立即返回或抛出变量。
image.png
13.run() 和Runnable.run() 不应被直接调用
image.png
14.不要把代码都写在同一行,降低可读性
image.png
15.类变量不要设置为public,而是设为private,再提供get和set方法
image.png
16.@Transactional 注解只能作用到 public方法上
image.png
17.@RequestMapping注解应该指定HTTP请求方式
image.png

18.数据比较问题


image.png
19.比较字符串是否相等时,字符串字面值应该放在左边
image.png
20.方法可能放回null,却未做判空处理
image.png
21.给基本数据类型赋值前应该先做强制类型转换
image.png
22.集合或者映射的非空判断,建议统一用工具类判断
image.png
23.Switch语句末尾分支使用default,建议大于3种情况才使用switch,否则使用if-else
image.png
24.删除无用的私有成员变量,私用方法,局部变量等。没用到的尽量删去,用到再重新写。提高逻辑严谨,去掉冗余代码
image.png

相关文章

网友评论

      本文标题:Sonar常见问题总结

      本文链接:https://www.haomeiwen.com/subject/cmnemktx.html