`
scholers
  • 浏览: 619641 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

FindBugs错误问题详解

阅读更多
1. equals比较不同的对象类型
Call to equals() comparing different types
This method calls equals(Object) on two references of different class types with no common subclasses. Therefore, the objects being compared are unlikely to be members of the same class at runtime (unless some application classes were not analyzed, or dynamic class loading can occur at runtime). According to the contract of equals(), objects of different classes should always compare as unequal; therefore, according to the contract defined by java.lang.Object.equals(Object), the result of this comparison will always be false at runtime.
说的是equals要比较相同的对象类型

2,可能产生空指针异常
Possible null pointer dereference
A reference value dereferenced here might be null at runtime.  This may lead to a NullPointerException when the code is executed.

3.从未使用的本地变量
Dead store to local variable
This instruction assigns a value to a local variable, but the value is not read by any subsequent instruction. Often, this indicates an error, because the value computed is never used.
Note that Sun's javac compiler often generates dead stores for final local variables. Because FindBugs is a bytecode-based tool, there is no easy way to eliminate these false positives.

4.应该是一个静态内部类
Should be a static inner class

This class is an inner class, but does not use its embedded reference to the object which created it.  This reference makes the instances of the class larger, and may keep the reference to the creator object alive longer than necessary.  If possible, the class should be made static.

5.方法名称第一个字母小写
Method names should start with an lower case letter

Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized.


6.用包装类的valueOf代替NEW
解释:因为用new Integer(int) 这样的方式会产生一个新的对象
而当编译时用valueOf则会被缓存,并且速度更快。
Method invokes inefficient Number constructor; use static valueOf instead

Using new Integer(int) is guaranteed to always result in a new object whereas Integer.valueOf(int) allows caching of values to be done by the compiler, class library, or JVM. Using of cached values avoids object allocation and the code will be faster.


7.无效的变量(这个可能是FindBugs的问题)
Bug: Dead store to result
Pattern id: DLS_DEAD_LOCAL_STORE, type: DLS, category: STYLE


This instruction assigns a value to a local variable, but the value is not read or used in any subsequent instruction. Often, this indicates an error, because the value computed is never used.

Note that Sun's javac compiler often generates dead stores for final local variables. Because FindBugs is a bytecode-based tool, there is no easy way to eliminate these false positives.

该指令指定一个值给一个局部变量,但值不读或后续指令使用。通常,这表明一个错误,因为值计算是从未使用过。

请注意,Sun的javac编译器经常产生局部变量的最终死亡商店。因为FindBugs是一个字节码为基础的工具,没有一种简单的方法来消除这些误报。

8.可能忽略的异常
Pattern id: DE_MIGHT_IGNORE, type: DE, category: BAD_PRACTICE
This method might ignore an exception.  In general, exceptions should be handled or reported in some way, or they should be thrown out of the method.
这种方法可能会忽略一个例外。一般来说,异常应以某种方式处理或报告的,或者他们应该在方法外被抛出。


9。静态常量前增加final关键字
Pattern id: MS_SHOULD_BE_FINAL, type: MS, category: MALICIOUS_CODE


A mutable static field could be changed by malicious code or by accident from another package. The field could be made final to avoid this vulnerability.
一个可变的静态变量是可以改变的恶意代码或从另一包事故。使用final可以作出最终以避免这种脆弱性。
0
0
分享到:
评论

相关推荐

    最新版Findbugs和缺陷详解与英文代号的对照表

    在"Findbugs缺陷详解与英文代号的对照表"中,通常会包含Findbugs在分析Java代码时发现的各种问题分类,以及对应的英文代号。这些代号通常是三到四个字母的组合,如DEADCODE(死代码)、URF_UNREAD_FIELD(未读字段)...

    findbugs检测提示详解

    在Java编程中,FindBugs是一款静态代码分析工具,它能帮助开发者找出代码中的潜在问题。下面我们将逐一解析描述中提到的FindBugs检测提示: 1. **Comparison of String objects using == or !=**:在Java中,使用`=...

    FindBugs错误修改指南

    ### FindBugs错误修改指南详解 #### EC_UNRELATED_TYPES - 不同类型间的equals比较 **问题描述**: 当两个不同类型的对象进行equals比较时,如果equals方法未被正确重写,将会引发逻辑错误。若equals方法中包含...

    myEclipse配置FindBugs详解

    FindBugs是一款强大的静态代码分析工具,专门用于检测Java代码中的潜在问题。它通过分析类或JAR文件的字节码,并与预定义的一系列缺陷模式进行比较,从而找出可能存在的错误和不佳实践。FindBugs的目标是帮助开发者...

    Findbugs缺陷详解与英文代号的对照表

    ### FindBugs缺陷详解与英文代号对照表 在软件开发过程中,静态代码分析工具如FindBugs能够帮助开发者及早地发现潜在的问题并提高代码质量。本文将详细介绍部分FindBugs检测到的问题及其对应的英文代号,以便于...

    ecplise插件findbugs2.0

    【FindBugs 2.0 插件详解】 FindBugs 是一款强大的静态代码分析工具,主要用于检测 Java 应用程序中的潜在错误和缺陷。在 2.0 版本中,FindBugs 支持 JDK 1.6,并且能够与 Eclipse 3.2 及以上版本无缝集成,为...

    详解eclipse插件findbugs新规则的开发过程

    FindBugs是一款强大的静态代码分析工具,它能够检测Java代码中的潜在错误,帮助开发者在运行时之前发现并修复问题。Eclipse作为流行的Java集成开发环境(IDE),其丰富的插件生态系统使得FindBugs得以无缝集成,提供...

    FindBugs安装与使用说明

    《FindBugs安装与使用详解》 FindBugs是一款开源的静态代码分析工具,主要用于Java程序的错误检测。它能够帮助开发者在代码运行前找出潜在的bug,提高代码质量和可维护性。本篇文章将详细介绍FindBugs的安装过程...

    findbugs工具包

    FindBugs是一款强大的静态代码分析工具,专为Java程序设计,旨在检测可能的错误、缺陷和潜在的问题。在软件开发过程中,FindBugs通过扫描源代码,帮助开发者提前发现并修复问题,提高代码质量和可靠性。它的核心功能...

    FindBugs-IDEA-1.0.1.zip

    《Android开发中的FindBugs插件详解及其1.0.1版本离线安装包》 在Android应用开发中,代码质量是决定应用性能、稳定性和用户体验的重要因素之一。FindBugs是一款强大的静态代码分析工具,它能帮助开发者在编码阶段...

    Findbugs 缺陷详解与英文代号的对照表

    rule.findbugs.IMSE_DONT_CATCH_IMSE.name=不良实践 - 捕获可疑IllegalMonitorStateException rule.findbugs.BX_BOXING...rule.findbugs.IJU_SETUP_NO_SUPER.name=使用错误 - TestCase定义的setUp没有调用super.setUp()

    myeclipse上安装FindBugs步骤和使用说明

    - **FindBugs**是一款用于Java应用程序的静态代码分析工具,能够帮助开发者发现代码中可能存在的错误或潜在问题。 - **优点**: - 提高代码质量。 - 减少后期维护成本。 - 有助于遵循最佳编程实践。 - **应用场景...

    java代码分析工具findbugs安装使用说明及常见错误

    **Java代码分析工具FindBugs:安装与使用详解** FindBugs是一款强大的静态代码分析工具,主要用于检测Java程序中的潜在缺陷。它通过分析字节码而非源代码来查找可能的问题,帮助开发者在运行阶段之前发现并修复代码...

    eclipse中FindBugs_安装使用

    ### Eclipse中FindBugs的安装与使用详解 #### 一、FindBugs简介 FindBugs是一款用于检测Java代码潜在缺陷的强大工具。它能够帮助开发者及时发现并修复代码中的问题,提高软件的质量和稳定性。FindBugs支持多种版本...

    edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821.rar

    《FindBugs工具详解及其Eclipse插件应用》 FindBugs是一款著名的静态代码分析工具,主要用于检测Java程序中的潜在错误和不良编程习惯。这款工具由University of Maryland的计算机科学学院开发并维护,其目标是帮助...

    eclise插件findbugs最新版

    1. **错误预测**:FindBugs 能够检测出多种类型的潜在问题,包括空指针异常、未初始化的对象引用、资源泄漏、并发问题、安全漏洞等。这些错误在运行时可能会导致程序崩溃或者性能下降。 2. **代码质量提升**:通过...

    findbugs系列资源汇总

    Findbugs,作为一款强大的静态代码分析工具,能够帮助开发者在程序运行前发现潜在的错误和不良编程习惯,从而提高代码的可靠性和可维护性。本资源汇总将围绕Findbugs的使用、插件安装以及缺陷详解进行深入探讨。 ...

    Findbugs Eclipse Plugin 1.3.9

    Findbugs Eclipse Plugin 1.3.9是一款在Eclipse集成开发环境中用于静态代码分析的插件,旨在帮助开发者在编码阶段发现潜在的错误和缺陷。这款插件通过分析Java源代码,识别出可能存在的问题,从而提高软件的质量和...

Global site tag (gtag.js) - Google Analytics