Findbugs项目总结3

Findbugs特点:锦上添花还是弄巧成拙?
都是,都不是。因人而异。如果没有扎实的jdk知识,没有过硬的代码走读能力,是做不好这项工作的,其结果必然是弄巧成拙,把本来运行正常的系统引入新的问题。所以,对于一个能够正常运行的程序修改问题时,要尽量不动原代码,还能排除findbugs报警。比如一个类定义了equals方法而没有定义hashcode方法,那就加一个hashcode方法,方法中只写上super.hashCode();这样不会影响现有流程,还能排除报警,此时的修改保守点好。对于field原来是静态的,现在修改成普通变量的,一定要保证它们的唯一性,即单例性。对于这个问题,刚开始时我就犯了个错误,定义了一个静态变量private static CommonData commonData = null; public static CommonData getInstance()通过调用getInstance()获得唯一实例,但忘记把类中的构造方法屏蔽掉了,导致初始化时用的是构造方法生成的对象,而静态变量还是空的,这样初始化时被数据库数据赋值的对象成了昙花一现,真正后来被用到的静态变量没有初始化,后来在测试的过程中发现,数据库配置的参数没有生效,才定位出原因,差点搞出动静来。
今天上午,修改完代码后,打包,运行findbugs,分析……。结果出来了,零bug。又看了几眼确实是零bug,顿时如释重负,兴奋之余回忆了这些天发生的事,于是抽空把它们写了下来,以便对过去的一个月时光做一个了断。

你可能感兴趣的:(jdk,工作)