zoukankan      html  css  js  c++  java
  • FindBugs的安装和使用

    一.下载和安装

        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

      

  • 相关阅读:
    DP 训练题目
    洛谷 P1736 创意吃鱼法
    树形背包
    树形DP
    轻松完爆Helm私有仓库
    轻松完爆Helm公共仓库
    一分钟轻松玩转Helm
    ceph -s 出现 mon is allowing insecure global_id reclaim
    Django下载与简介
    部署ceph集群 (Nautilus版)
  • 原文地址:https://www.cnblogs.com/yyh19890221/p/3094410.html
Copyright © 2011-2022 走看看