FindBugs是一个静态分析eclipse插件的工具,可以帮助用户发现Java软件中可能存在的bug。直接查找空引用、冗余变量等可能的错误。
功能介绍
1.发现哈希等于不匹配。
找到一些与equals()和hashCode()实现相关的问题。这两个方法非常重要,因为几乎所有基于集合的类——List、Map、Set等。-打电话给他们。
2.检测:忽略方法返回值
这个检测器在代码中寻找忽略了不应该被忽略的方法的返回值的地方。一个常见的例子是调用String方法时。
这个错误很常见。在第2行,程序员认为他已经用P替换了字符串中的所有B。没错,但是他忘了字符串是不可变的。所有这些方法都返回一个新的字符串,并且从不改变消息的接收者。
3.检测:空指针解引用和冗余比较。
该检测器寻找两种类型的问题。它查找代码路径将导致或可能导致空指针异常的情况,并且还查找空指针的冗余比较。例如,如果两个比较值都为空,则它们是多余的,可能表明有代码错误。FindBugs当可以确定一个值为空而另一个值不为空时,检测类似的错误。
4.检测:初始化前读取字段。
该检测器在构造函数中查找初始化前读取的字段。此错误通常是由于使用字段名而不是构造函数参数导致的,例如读取构造函数中未初始化的字段。
5.命名检查
标准Java命令规范的测试:变量名不能太短;方法名不应太长;类名应该以小写字母开头;方法名和字段名应该以小写字母开头,依此类推。
6、未使用的代码检查
查找从未使用过的私有字段和局部变量、无法执行的语句、从未调用过的私有方法等等。
7.嵌套检查
例如,switch语句应该有一个默认块,如果应该避免块,参数不应该重新分配,双精度值不应该相等地比较,则应该深度嵌套。
8.导入语句检查
检查import语句是否有问题,比如同一个类被导入两次或者被导入到java.lang的一个类中
9、JUnit测试检查
找到测试用例、测试方法的具体问题,比如方法名的正确拼写,suite()方法是否是静态的、公共的。
10、字符串检查
找出处理字符串时的常见问题,比如重复的字符串标量,调用字符串构造函数,对字符串变量调用toString()方法。
11、支架检查
检查for、if、while和else语句中是否使用了括号。
12、代码大小检查
测试长方法,方法太多的类,重构中类似的问题。
13、终端功能检查
因为在Java语言中,finalize()方法并不是那么常见,虽然它们的使用规则非常详细,但是人们对它们还是比较陌生的。这种检查寻找finalize()方法的各种问题,例如空的终结器、调用其他方法的finalize()方法、对finalize()的显式调用等等。
14、克隆检查
clone()方法的新规则。任何覆盖clone()方法的类都必须实现Cloneable,clone()方法应该调用super.clone(),clone()方法应该声明抛出CloneNotSupportedException,即使实际上没有抛出异常。
15、联轴器检查
寻找类之间过度耦合的迹象,比如导入太多内容;当超类型或接口足够时,使用子类类型;该类中有太多的字段、变量和返回类型。
16、异常检查
检查异常:不应该声明该方法并抛出java.lang.Exception异常,不应该将异常用于流控制,不应该捕捉Throwable,等等。
17.日志检查
查找java.util.logging.Logger的不当使用,包括非final、非静态 记录设备,以及一个类中的多个记录设备。
18、打开—关闭检查
查看文档或通信,看看是否忘记了关闭的情况。
19.其他检查
有关其他缺陷的列表,请参考:缺陷列表。
20.构建您自己的规则集。
您可以构建自己的规则集。
施用方式
下载完成后,将解压后的文件复制到$ECLIPSE_HOME/plugins/目录下,重启ECLIPSE完成安装。
1.插件的设置:
安装后,您可以使用项目>属性& gtFindBugs标记来设置它。设置方式可以根据自己的需要进行调整。
另外,在问题(problems)列表窗口(Windows >;查看>问题)在滤镜设置中,勾选FindBugs的所有相关选项。
2.插件的实现:
选择项目,右键单击> Find Bugs & gt查找bug执行
FindBugs(静态分析Eclipse插件)相关下载
- 查看详情FastDevPlat(可视化免代码开发平台工具)简体2023-01-15
- 查看详情KittenCode重庆教育版简体2023-01-09
- 查看详情GTWIN(松下触摸屏编程工具)简体2023-01-04
- 查看详情百度开发者工具简体2022-12-29
- 查看详情Octave(高级编程语言软件)简体2022-12-27
- 查看详情 FastDevPlat(可视化免代码开发平台 简体 2023-01-15
- 查看详情 KittenCode重庆教育版 简体 2023-01-09
- 查看详情 GTWIN(松下触摸屏编程工具) 简体 2023-01-04
- 查看详情 百度开发者工具 简体 2022-12-29
- 查看详情 Octave(高级编程语言软件) 简体 2022-12-27
- 查看详情 robosim虚拟机器人 简体 2023-01-16
- 查看详情 ANTS Performance Profiler(.NET性能分析工具) 英文 2023-01-16
- 查看详情 Spug(自动化运维平台) 简体 2023-01-16