一.下载和安装
FindBugs是一个能静态分析源代码中可能会出现Bug的Eclipse插件工具。
1.打开Eclipse-->Help-->Eclipse Marketplace 搜索Findbugs 选择FindBugs Eclipse Plugin,点击Install安装,安装完成后重启Eclipse
2.使用FindBugs
1)在Eclipse-->Windows-->Show View-->Other 选择Bug Exploer, 这里会显示我们执行第二步找出的Bug
2)右键java文件或整个项目,选择Find Bugs-->Find Bugs
3.Bug举例
1)string 对象之间比较不能用== 和 != ( Comparison of String objects using == or !=)
public String validatecode() { // System.out.println(code); String validateCode = (String)ActionContext.getContext().getSession() .get("validateCode"); // System.out.println(validateCode); if (code == validateCode) { result = null; } else result = "验证码错误"; return SUCCESS; }
2)getDigest()是MD5Encrypt类的静态方法,无需new一个对象再调用
MD5Encrypt encrypt=new MD5Encrypt(); String fodUsrPwd=encrypt.getDigest(user.getUsrPwd());//对用户密码进行加密
3)有可能返回是的null ,空指针异常
List <Task> list = query.list(); if(list.size()==0){}
4)问题原因:flag 是类的静态成员变量,非静态方法setFlag直接对其赋值,非静态方法是与对象相关联的,当多个对象同时对该变量进行赋值时可能出现问题。解决方法:在使用静态成员变量时使用get和set方法。
private static boolean flag = false; public String setFlag(){ flag = false; return null; }
4)参考
findbugs能帮我们找出代码中存在的风险,但是不一定所有bug是必须修改的,需要我们自己根据实际代码去做判断,一下是findbugs常见的清理问题
http://blog.csdn.net/wzy0467/article/details/8477175