ITPub博客

首页 > 应用开发 > IT综合 > sonar常见问题分析

sonar常见问题分析

IT综合 作者:ii_chengzi 时间:2019-01-18 11:07:33 0 删除 编辑
1.Equality tests should not be made with floating point value
 
  代码举例: if (result == num) //result和num均为double 之间比较会有精度损失
 
  解决:BigDecimal data1 = new BigDecimal(totalArea);
 
     BigDecimal data2 = new BigDecimal(s1);
 
        int num = data1.compareTo(data2);//num =0 相等  >0前者大于后者 ,反之 <0 前者小于后者
 
2.This class overrides "equals()" and should therefore also override "hashCode()". 
 
  代码举例:public boolean equals(Object obj){...}  //需要添加对应的hashCode方法 
 
  解决:可以添加一个最简单的hashCode方法  
 
     public int hashCode() {return 0;}   
 
3.Synchronize on a new "Object" instead
 
  代码举例:synchronized ("实例化") {...}   //里边必须是对象
 
  解决: private Object obj ="实例化";
 
     synchronized (obj ) {...}
 
4.Close this"FileInputStream" in a "finally" clause.
 
  解决方法: 在finally中关闭FileInputStream,主要是关闭方式不对,finally代码块中,应该要对每个stream进行单独关闭,而不能统一写在一个try-catch代码中。
 
5.A"NullPointerException" could be thrown; "tom" is nullablehere
 
  空指针,解决方式:先判断或者先实例化,再访问里面的属性或者成员。
 
6.Makethis IP "127.0.0.1" address configurable
 
  解决方法:不要把IP地址写在此类中,应该在对应的系统文件或者相应的配置文件中配置
 
7.Either log or rethrow this exception.
 
  解决方法: 把对应的输出写成Logger.error("aaa“);的形式 。

http://shenzhen.offcn.com/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31543790/viewspace-2564121/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-06-26

  • 博文量
    71
  • 访问量
    34139