9. 分析属性

师成师成· 更新于 2026-09-28· 阅读 4 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

9. 分析属性

FindBugs 允许对其执行的分析的若干方面进行定制,这些选项通过系统属性进行配置。本章介绍可配置的分析选项。

分析选项主要有两个用途。第一,它允许你告知 FindBugs 应用程序中各方法的含义,从而使其产生更准确的结果,或减少误报。第二,它允许你配置所执行分析的精度。降低分析精度可以节省内存和分析时间,但代价是可能遗漏一些真实缺陷,或产生更多误报。

分析选项通过 -property 命令行选项进行设置。例如:

$ findbugs -textui -property "cfg.noprune=true"  myApp.jar

可配置的分析属性列表见 表 9.1,「可配置的分析属性」。

表 9.1. 可配置的分析属性

属性名称值含义
findbugs.assertionmethods以逗号分隔的完全限定方法名列表:例如 "com.foo.MyClass.checkAssertion"此属性指定用于检查程序断言的方法的名称。指定这些方法可以让空指针解引用缺陷检测器避免对由断言方法检查过的值报告误报。
findbugs.de.commenttrue 或 false若为 true,DroppedException 检测器会扫描源代码中的空 catch 块是否含有注释,如果找到,则不报告警告。
findbugs.maskedfields.localstrue 或 false若为 true,对遮蔽字段的局部变量发出低优先级警告。默认值为 false。
findbugs.nullderef.assumensptrue 或 false未使用(原意:若为 true,空指针解引用检测器假定从方法返回或通过参数传递给方法的任何引用值都可能为 null。默认值为 false。注意,启用此属性很可能会产生大量误报。)
findbugs.refcomp.reportAlltrue 或 false若为 true,则报告所有使用 == 和 != 运算符的可疑引用比较。若为 false,则每个方法只发出一条此类警告。默认值为 false。
findbugs.sf.commenttrue 或 false若为 true,SwitchFallthrough 检测器只会对源代码中没有包含 "fall" 或 "nobreak" 字样的注释的情况报告警告。(此功能需要使用准确的源代码路径才能正常工作。)这有助于发现 switch 落空(fallthrough)很可能是无意为之的情况。

评论

登录后参与评论

正在加载评论…