findBugs静态代码检查
1, Bad practice 坏的实践
HE问题,equals/hashcode
SQL问题,非常量的字符串产生
DE问题,异常处理等
2, Correctness 一般的正确性问题
NP,空指针
NM,类的hascode/tostring是否覆盖父类的Object中对应的方法
SQL,尝试访问一个prepared statement为0的索引
UWF,判断对象是否所有属性write时是否为null
3, Internationalization国际化,检查对应字串不恰当的转换
4, Malicious code vulnerability 可能受到的恶意攻击
FI类finalize应为protected
MS属性可变的数组
5, Multithreaded correctness 多线程的正确性<br>
Esyn空同步块
MWN错误的notify
NO 唤醒线程而不是线程等待
SC Thread.start()类被继承时可能导致错误
6, Performance 性能问题
SIC 广泛的static
SS 实例属性不被读取
URF 属性没有被read
UuF 属性没有被使用到
7, Dodgy 危险的
CI final错定义protected
DLS: 本地赋值没有被使用到
ICAST:类型转换时,应先转再做计算
INT:没必要的整型数字比较,如X <= Integer.MAX_VALUE。
NP:对readline()的直接引用,而没有判断是否null;对方法调用的直接引用,而方法可能返回null。
REC:直接捕获Exception,而实际上可能是RuntimeException。
ST: 从实例方法里直接修改类变量,即static属性。
SnoarLint插件/SonarQuebe质量平台
项目右键-sonarlint-analyze
lombok
自动生成 setter/getter/constrctor/cleanup/tostring等等