FindBugs Bug Descriptions

◇例1:

Integer a = ;
String str ="";
System.out.println(str == a.toString());

◇结果:

Rank: Scary (9), confidence: High
Pattern: ES_COMPARING_STRINGS_WITH_EQ
Type: ES, Category: BAD_PRACTICE (Bad practice)

◇ES_COMPARING_STRINGS_WITH_EQ的说明:

这段代码使用== or !=操作符来进行String对象的引用比较。

除非代码中的两个字符串都是常量或者使用了String.intern()方法返回新的字符串引用(这个引用能保证指向的是同一个地址),否则两个字符串的值很可能代表两个不同的String对象。考虑使用equals(Object)代替。

也就是说上述代码的返回值总是false。原因就是他们比较的是引用而不是值。所以如果只是想比较两个字符串的值是否相等,总是使用equals(Object)方法更好。

-----------------------------------------------------------------------------------------------

◇例2:

Integer a = 123;
String str ="123";
System.out.println(str.equals(a));

◇结果:

Rank: Scariest (1), confidence: High
Pattern: EC_UNRELATED_TYPES
Type: EC, Category: CORRECTNESS (Correctness)

◇EC_UNRELATED_TYPES的说明:

这段代码在两个不同类型的引用上调用equals(Object)方法。分析表明他们在运行时会变成两个不同类对象。另外,对这个equals方法的测试表明这个调用总是返回false,或者这个equals方法是不均衡的(均衡是Object类的equals方法的必须的一个属性)。

*********************************************************************

例1和例2的解决:使用Equals方法+将两个对象转换为相同的类型再比较

*********************************************************************

Eclipse findbugs找到的bug案例说明

FindBugs Bug Descriptions的更多相关文章

  1. FindBugs的Eclipse插件安装与使用

    1.FindBugs介绍 FindBugs是一款Java静态代码分析工具,与其他静态分析工具(如Checkstyle和PMD)不同,FindBugs 不注重样式或者格式,它专注于寻找真正的缺陷或者潜在 ...

  2. J2EE相关总结

    Java Commons The Java™ Tutorials: http://docs.oracle.com/javase/tutorial/index.html Java Platform, E ...

  3. Java代码质量度量工具大阅兵

    FindBugs FindBugs, a program which uses static analysis to look for bugs in Java code. It is free so ...

  4. [中英对照]The Art Of Reporting Bugs | 报bug的艺术

    前言:因为最近要给兄弟Team分享一下如何有效地报告bug, 故多做一做功课.下面给出一篇博客的中英文对照翻译. The Art Of Reporting Bugs | 报bug的艺术 My init ...

  5. MyEclipse常用插件使用教程

    一.Findbugs 1. 配置 1.1 打开FindBugs视图: Windows => Show View => Other… => FindBugs => Bug Inf ...

  6. SimpleCV install and "You need the python image library to save by filehandle"

    2015年5月3日 22:15:43 在win7下安装了python.simplecv,试着运行simplecv官网第一个hello world程序结果报错,提示说%python%/lib/site- ...

  7. IDEA 插件推荐 —— 让你写出好代码的神器!

    概述 今天介绍的插件主要是围绕编码规范的.有追求的程序员,往往都有代码洁癖,要尽量减少代码的「坏味道」. 代码静态检查是有很多种类,例如圈复杂度.重复率等.业界提供了很多静态检查的插件来识别这些不合规 ...

  8. FindBugs 入门——帮你减少代码中的bug数

    FindBugs 入门 FindBugs 作用 开发人员在开发了一部分代码后,可以使用FindBugs进行代码缺陷的检查.提高代码的质量,同时也可以减少测试人员给你报的bug数. 代码缺陷分类 根据缺 ...

  9. Eclipse插件 - FindBugs 检查代码隐藏的 Bug

    简介         FindBugs 是一个在 Java 程序中查找 bug 的程序,它可以查找可能出错的代码,注意 FindBugs 是检查 Java 字节码,也就是*.class文件.其实准确的 ...

随机推荐

  1. javascript中===与==

    == equality 等同,=== identity 恒等. ==, 两边值类型不同的时候,要先进行类型转换,再比较. ===,不做类型转换,类型不同的一定不等. 类型转换规则:Boolean> ...

  2. 《Linux/Unix系统编程手册》读书笔记1

    <Linux/Unix系统编程手册>读书笔记 目录 最近这一个月在看<Linux/Unix系统编程手册>,在学习关于Linux的系统编程.之前学习Linux的时候就打算写关于L ...

  3. POJ 3185 The Water Bowls(高斯消元-枚举变元个数)

    题目链接:http://poj.org/problem?id=3185 题意:20盏灯排成一排.操作第i盏灯的时候,i-1和i+1盏灯的状态均会改变.给定初始状态,问最少操作多少盏灯使得所有灯的状态最 ...

  4. [POJ3177]Redundant Paths(双连通图,割边,桥,重边)

    题目链接:http://poj.org/problem?id=3177 和上一题一样,只是有重边. 如何解决重边的问题? 1.  构造图G时把重边也考虑进来,然后在划分边双连通分量时先把桥删去,再划分 ...

  5. PHP运行模式的深入理解

    PHP运行模式有4钟:1)cgi 通用网关接口(Common Gateway Interface))2) fast-cgi 常驻 (long-live) 型的 CGI3) cli  命令行运行   ( ...

  6. [反汇编练习] 160个CrackMe之010

    [反汇编练习] 160个CrackMe之010. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  7. DrawDib函数组的使用

    Microsoft的针对与设备无关位图(DIB位图),在其WIN32 SDK的Multimedia中提供了一组绘制DIB位图的高性能函数组──DrawDib函数组.DrawDib函数组是一组不依赖于图 ...

  8. LwIP源代码文件目录解析

    1 -- LwIP源代码文件目录 root@motadou:/home/motadou/lwip/lwip-1.4.1# tree . ├── CHANGELOG ├── COPYING ├── do ...

  9. protobuf-3.0.0-beta-2 windows编译 x64/x86

    V3.0.0 beta2以及之后都是CMake 创建VS Solution,project. 因为只能创建x64的项目工程,有时候需要x86的, 只能创建完x64后,自己修改工程配置弄成x86. 创建 ...

  10. [Everyday Mathematics]20150123

    设 $A,B$ 是同阶方阵, 满足 $\rank(AB-BA)=1$. 试证: $(AB-BA)^2=0$.