IntelliJ IDEA 安装 FindBugs 插件
Ctrl+Alt+S
快捷键打开设置选项- 选择
Plugins
- 点击底部
Browse repositories
按钮打开插件中心 - 在输入框搜索
findbugs
- 选择
FindBugs-IDEA
- 此时右边红框位置会有一个绿色的
Install
按钮 (下面这张图是已经安装的情况), 点击安装即可, 安装完成后需要重启 IDEAIDEA 安装 FindBugs 插件
FindBugs-IDEA 插件使用介绍
Ctrl+Shift+A
快捷键打开 Find Action 搜索面板- 在搜索框输入
findbugs
进行搜索 - 点击下方红框的
FindBugs-IDEA
即可打开插件面板打开 FindBugs 插件
插件面板按钮说明FindBugs 面板
- 分析选中的 Java 文件
- 分析在光标所在的类
- 分析选中的包
- 分析选中的模块 (点击时会询问是否同时分析 test 包中的类)
- 分析整个项目 (点击时会询问是否同时分析 test 包中的类)
- 自定义分析的类
- 分析被修改的类 (搭配 SVN,Git 使用)
- 分析 changelist 中的类 (搭配 SVN,Git 使用)
- 停止分析
- 根据 BUG 类型分组
- 根据类分组
- 根据包分组
- 根据 BUG 严重级别分组
问题反馈:
1->Bad pratice编程的坏习惯 (红色)
主要是命名问题,比如类名最好以大写开头,字符串不要使用等号不等号进行比较,可能会有异常最好用try-catch包裹的代码,方法有返回值但被忽略等等,这些如果不想改可以直接忽略.
2->Malicious code vulnerability 恶意代码漏洞
听起来很吓人呀,主要是一些属性直接使用public让别的类来获取,建议改为private并为其提供get/set方法.
还有一些public的静态字段,可能会被别的包获取之类的.
这些也需要根据项目具体情况来,个人意见,在有的不重要类,有时直接公开使用属性,可能更为便捷.如果你认为这些不需要修改,完全可以忽略.
3->Dodgy code 糟糕的代码 (黄色)
·比如一个double/float被强制转换成int/long可能会导致精度损失,一些接近零的浮点数会被直接截断,事实上我们应该保留.
这里顺便提一点,这两天看了《app研发录》,在规范代码,尽量规避错误这方面我也有了一些收获.
在类型转换的时候,我们应该为类型转换提供一个安全的转换方法,因为我们永远不会知道,我们的app在用户手里会发生什么,所以我们要尽可能的去减少这种发生错误的可能.
·比如使用switch的时候没有提供default。
·多余的空检查,就是不可能为空的值,增加了不为空判断,这是没有必要的。属于代码冗余
·不安全的类型转换等等。
这项太多了,就不一一列举了。
4->performance 性能 (黄色)
主要是一些无用的代码,比如声明了没有用到的属性等等
5->correctness 代码的正确性 这一项应该算是最重要的了
主要是没有对变量进行不为空判定,在特殊情况可能发生空指针异常.