FindBugs是业界使用最广泛的一款 java代码静态检测工具,它可以帮助java工程师提高代码质量以及排除隐含的缺陷,FindBugs检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。 Findbugs提供了方便操作的可视化界面,同时也可以作为Eclipse的一个插件来使用,而我们使用得最多的还是作为Eclipse的插件来使用。可以说一般情况下我们只要用Eclipse插件就足够了。
在一个新项目中,我先做的事情之一,是建立使用诸如Checkstyle和Findbugs之类工具的准则。目的是制定一些代码规范,以及避免通过静态代码分析能够检测到的bug。
迟早会有人给出案例说这样太离谱了。其中的一个案例是Checkstyle的魔数检查。它会对任何没有定义常量使用的数字字面量给出警告,除了-1、0、1和2。
很多开发者在这个检查方面都有问题,这可以从结果代码中看到。我看到过这样的代码:
private static final int FOUR = 4;