从FindBugs中学Java【一】

2023-11-14

findbug 这里[中文列表]:

 http://svn.codehaus.org/sonar-plugins/tags/sonar-l10n-zh-plugin-1.1/src/main/resources/org/sonar/l10n/findbugs_zh.properties

 

rule.findbugs.IMSE_DONT_CATCH_IMSE.name=不良实践 - 捕获可疑IllegalMonitorStateException
rule.findbugs.BX_BOXING_IMMEDIATELY_UNBOXED.name=性能 - 基本类型包装之后立刻解包
rule.findbugs.IJU_SETUP_NO_SUPER.name=使用错误 - TestCase定义的setUp没有调用super.setUp()
rule.findbugs.TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED.name=使用错误 - 某个值使用了注解限制类型,但是这个限制永远不会发生
rule.findbugs.TLW_TWO_LOCK_WAIT.name=多线程错误 - 等待两个被持有的锁
rule.findbugs.RV_01_TO_INT.name=使用错误 - 0至1的随机数被当做整数0
rule.findbugs.NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE.name=高危 - 参数必须非null但是标记为可为null
rule.findbugs.RV_ABSOLUTE_VALUE_OF_RANDOM_INT.name=使用错误 - 尝试计算32位随机整数的绝对值
rule.findbugs.EC_INCOMPATIBLE_ARRAY_COMPARE.name=使用错误 - 使用equals()比较不兼容的数组
rule.findbugs.UL_UNRELEASED_LOCK_EXCEPTION_PATH.name=多线程错误 - 方法没有在所有异常路径释放锁
rule.findbugs.SE_NONSTATIC_SERIALVERSIONID.name=不良实践 - serialVersionUID不是static的
rule.findbugs.UCF_USELESS_CONTROL_FLOW.name=高危 - 无用控制流
rule.findbugs.BC_IMPOSSIBLE_CAST.name=使用错误 - 不可能的转换
rule.findbugs.XSS_REQUEST_PARAMETER_TO_SEND_ERROR.name=安全风险 - servlet的反射导致跨站脚本漏洞
rule.findbugs.DM_NEW_FOR_GETCLASS.name=性能 - 仅为了获得一个方法就创建了一个对象
rule.findbugs.OBL_UNSATISFIED_OBLIGATION.name=试验 - 方法可能在清理流或资源时失败
rule.findbugs.UW_UNCOND_WAIT.name=多线程错误 - 无条件等待
rule.findbugs.DLS_DEAD_LOCAL_STORE_OF_NULL.name=高危 - 把null设置给不会用到的局部变量
rule.findbugs.NM_CLASS_NAMING_CONVENTION.name=类名应该以大写字母开头
rule.findbugs.RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN.name=使用错误 - 怀疑对两个布尔值的引用进行比较
rule.findbugs.MWN_MISMATCHED_NOTIFY.name=多线程错误- 不匹配的notify()
rule.findbugs.NM_VERY_CONFUSING.name=错误 - 非常容易迷惑的方法名
rule.findbugs.FI_NULLIFY_SUPER.name=不良实践 - 空Finalizer禁用了超类的finalizer
rule.findbugs.MTIA_SUSPECT_STRUTS_INSTANCE_FIELD.name=高危 - 继承了struts Action的类使用了实例变量
rule.findbugs.DM_STRING_CTOR.name=性能 - 方法调用了效率很低的new String(String)构造方法
rule.findbugs.STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE.name=多线程错误 - 调用静态DateFormat
rule.findbugs.NP_NULL_PARAM_DEREF_NONVIRTUAL.name=使用错误 - 非虚拟方法调用向非空参数传入了null
rule.findbugs.FI_EMPTY.name=不良实践 - 应该删除空的finalizer
rule.findbugs.CD_CIRCULAR_DEPENDENCY.name=试验 - 类间存在循环引用
rule.findbugs.EC_UNRELATED_TYPES.name=使用错误 - 使用equals()比较不同类型
rule.findbugs.EI_EXPOSE_STATIC_REP2.name=恶意代码漏洞 - 把可变对象保存到静态字段中可能会暴露内部静态状态
rule.findbugs.DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY.name=错误 - 对数组执行toString
rule.findbugs.SIC_INNER_SHOULD_BE_STATIC_ANON.name=性能 - 可以重构成一个静态内部类
rule.findbugs.STI_INTERRUPTED_ON_UNKNOWNTHREAD.name=错误 - 在thread实例上调用了静态Thread.interrupted()方法
rule.findbugs.CN_IDIOM_NO_SUPER_CALL.name=不良实践 - clone方法没有调用super.clone()
rule.findbugs.VA_FORMAT_STRING_BAD_ARGUMENT.name=错误用法 - 格式化字符串占位符与传入的参数不匹配
rule.findbugs.EQ_DOESNT_OVERRIDE_EQUALS.name=高危 - 类没有覆盖父类的equals方法
rule.findbugs.BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY.name=错误用法 - 集合转换为数组元素时发生的类型转换错误
rule.findbugs.SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION.name=不良实践 - 类是可扩展的,但是没有提供无参数的构造方法
rule.findbugs.TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK.name=错误用法 - 数值需要类型标示,但是却标记为未知
rule.findbugs.SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS.name=性能 - 可以筹够成一个静态内部类
rule.findbugs.EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS.name=不良实践 - equals检测不兼容的参数操作
rule.findbugs.RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED.name=错误用法 - 忽略了putIfAbsent的返回值,传递给putIfAbsent的值被重用
rule.findbugs.STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE.name=多线程错误 - 调用静态Calendar
rule.findbugs.MS_CANNOT_BE_FINAL.name=恶意代码漏洞 - 字段不是final的,不能防止恶意代码的攻击
rule.findbugs.IS_INCONSISTENT_SYNC.name=多线程错误 - 不一致的同步
rule.findbugs.SE_NO_SERIALVERSIONID.name=不良实践 - 类是可序列化的,但是没有定义serialVersionUID
rule.findbugs.EI_EXPOSE_REP2.name=恶意代码漏洞 - 可能暴露内部实现,通过与可变对象引用协作
rule.findbugs.NM_METHOD_CONSTRUCTOR_CONFUSION.name=错误用法 - 明显的方法/构造方法混淆
rule.findbugs.ICAST_INTEGER_MULTIPLY_CAST_TO_LONG.name=高危 - 整形乘法的结果转换为long型
rule.findbugs.QF_QUESTIONABLE_FOR_LOOP.name=高危 - for循环中存在复杂,微妙或者错误的自增
rule.findbugs.DLS_DEAD_STORE_OF_CLASS_LITERAL.name=错误用法 - 类中保存了无用字符
rule.findbugs.NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER.name=不良实践 - 使用了未来java版本中成为关键字的标识
rule.findbugs.BC_VACUOUS_INSTANCEOF.name=高危 - instanceof会一直返回true
rule.findbugs.INT_VACUOUS_BIT_OPERATION.name=高危 - 在整形上进行位操作时有一些位上出现空洞
rule.findbugs.NP_NULL_INSTANCEOF.name=错误用法 - 一个已知的null值被检测它是否是一个类型的实例
rule.findbugs.SIC_THREADLOCAL_DEADLY_EMBRACE.name=错误用法 - 非静态内部类和ThreadLocal的致命结合
rule.findbugs.EQ_UNUSUAL.name=高危 - 罕见的equals方法
rule.findbugs.IJU_NO_TESTS.name=错误用法 - TestCase没有任何测试
rule.findbugs.EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC.name=错误用法 - equals方法覆盖了父类的equals可能功能不符
rule.findbugs.XFB_XML_FACTORY_BYPASS.name=高危 - 方法直接调用了xml接口的一个具体实现
rule.findbugs.SWL_SLEEP_WITH_LOCK_HELD.name=多线程错误 - 方法在获得锁时调用了Thread.sleep()
rule.findbugs.CN_IDIOM.name=不良实践 - 类实现了Cloneable ,但是没有定义或使用clone方法
rule.findbugs.WA_AWAIT_NOT_IN_LOOP.name=多线程错误 - 未在循环中使用的Condition.await()
rule.findbugs.DM_FP_NUMBER_CTOR.name=性能 - 方法调用了低效的浮点书构造方法;应该使用静态的valueOf代替
rule.findbugs.SF_SWITCH_NO_DEFAULT.name=Switch语句中没有包含default
rule.findbugs.NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE.name=高危 - 调用返回返回值可能出现null值
rule.findbugs.NP_CLONE_COULD_RETURN_NULL.name=不良实践 - Clone方法可能返回null
rule.findbugs.MS_OOI_PKGPROTECT.name=恶意代码漏洞 - 属性应该从接口中移除并将访问权限设置为包保护
rule.findbugs.DM_BOXED_PRIMITIVE_TOSTRING.name=性能 - 方法使用了装箱的基本类型只为了调用toString
rule.findbugs.EQ_ABSTRACT_SELF.name=不良实践 - 抽象类定义了协变的equals方法
rule.findbugs.DM_STRING_TOSTRING.name=性能 - 方法调用了String的toString()方法
rule.findbugs.SE_METHOD_MUST_BE_PRIVATE.name=错误用法 - 方法必须是private的为了让序列化正常工作
rule.findbugs.DL_SYNCHRONIZATION_ON_BOOLEAN.name=多线程错误 - 在Boolean上使用同步可能导致死锁
rule.findbugs.UWF_UNWRITTEN_FIELD.name=错误用法 - 未赋值属性
rule.findbugs.IS2_INCONSISTENT_SYNC.name=多线程错误 - 不一致的同步
rule.findbugs.IM_AVERAGE_COMPUTATION_COULD_OVERFLOW.name=高危 - 计算平均值可能溢出
rule.findbugs.BIT_SIGNED_CHECK_HIGH_BIT.name=错误用法 - 检查位运算的符号
rule.findbugs.FL_MATH_USING_FLOAT_PRECISION.name=错误用法 - 方法进行数学运算时使用了浮点数的精度
rule.findbugs.WS_WRITEOBJECT_SYNC.name=多线程错误 - 类的writeObject()方法是同步的,但是没有做其他事情
rule.findbugs.RV_RETURN_VALUE_IGNORED.name=错误用法 - 方法忽略了返回值
rule.findbugs.SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE.name=安全风险 - 非常量的字符串传递给方法执行SQL语句
rule.findbugs.JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS.name=不良实践 - 不可变的类的属性应该是final
rule.findbugs.AM_CREATES_EMPTY_ZIP_FILE_ENTRY.name=不良实践 - 创建了一个空的zip文件的入口
rule.findbugs.DM_NEXTINT_VIA_NEXTDOUBLE.name=性能 - 使用Random的nextInt方法来获得一个随机整数,而不是nextDouble
rule.findbugs.UI_INHERITANCE_UNSAFE_GETRESOURCE.name=不良实践 - 如果类被扩展,GetResource的使用可能就是不安全的
rule.findbugs.SIO_SUPERFLUOUS_INSTANCEOF.name=错误用法 - 不必要的类型检测使用instanceof操作符
rule.findbugs.EQ_OTHER_NO_OBJECT.name=错误用法 - equals()方法定义,但是没有覆盖equals(Object)
rule.findbugs.USM_USELESS_ABSTRACT_METHOD.name=试验 - 抽象方法已经在实现的接口中定义了
rule.findbugs.MTIA_SUSPECT_SERVLET_INSTANCE_FIELD.name=高危 - 扩展Servlet的类使用了实例变量
rule.findbugs.DM_USELESS_THREAD.name=多线程错误 - 使用默认的空run方法创建了一个线程
rule.findbugs.ML_SYNC_ON_UPDATED_FIELD.name=多线程错误 - 方法在一个修改了的属性上进行了同步
rule.findbugs.CO_SELF_NO_OBJECT.name=不良实践 - 协变的compareTo()定义
rule.findbugs.BC_UNCONFIRMED_CAST.name=高危 - 未检查/未证实的类型转换
rule.findbugs.FI_FINALIZER_NULLS_FIELDS.name=不良实践 - Finalizer空属性
rule.findbugs.BIT_AND.name=错误用法 - 不兼容的位掩码(BIT_AND)
rule.findbugs.FE_FLOATING_POINT_EQUALITY.name=高危 - 测试浮点数相等
rule.findbugs.TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK.name=错误用法 - 值不要求有类型标示,但是标记为未知
rule.findbugs.NP_NULL_PARAM_DEREF.name=错误用法 - 方法调用把null传递给一个非null参数
rule.findbugs.FB_MISSING_EXPECTED_WARNING.name=试验 - findbugs丢失了期待或需要的警告
rule.findbugs.DMI_INVOKING_HASHCODE_ON_ARRAY.name=错误用法 - 在数组上调用了hashCode
rule.findbugs.QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT.name=错误用法 - 方法在布尔表达式中分配了boolean文字
rule.findbugs.SA_FIELD_SELF_COMPARISON.name=错误用法 - 属性自己与自己进行了比较
rule.findbugs.UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR.name=错误用法 - 父类的构造方法调用未初始化属性的方法
rule.findbugs.ES_COMPARING_PARAMETER_STRING_WITH_EQ.name=不良实践 - 比较字符串参数使用了 == 或 !=
rule.findbugs.INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE.name=错误用法 - 错误比较非负值与负数
rule.findbugs.INT_BAD_COMPARISON_WITH_SIGNED_BYTE.name=错误用法 - 错误比较带符号的byte
rule.findbugs.IO_APPENDING_TO_OBJECT_OUTPUT_STREAM.name=错误用法 - 尝试向一个对象输出流添加信息
rule.findbugs.FI_MISSING_SUPER_CALL.name=不良实践 - Finalizer没有调用父类的finalizer
rule.findbugs.VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED.name=错误用法 - 传递了多余实际使用的格式化字符串的参数
rule.findbugs.HE_EQUALS_USE_HASHCODE.name=不良实践 - 类定义了equals(),但使用了Object.hashCode()
rule.findbugs.IJU_BAD_SUITE_METHOD.name=错误用法 - TestCase声明了一个错误的suite方法
rule.findbugs.DMI_CONSTANT_DB_PASSWORD.name=安全风险 - 硬编码了数据库密码
rule.findbugs.REC_CATCH_EXCEPTION.name=高危 - 捕获了没有抛出的异常
rule.findbugs.PS_PUBLIC_SEMAPHORES.name=高危 - 类在公用接口中暴露了同步和信号
rule.findbugs.EC_UNRELATED_INTERFACES.name=错误用法 - 调用equals()比较不同的接口类型
rule.findbugs.UCF_USELESS_CONTROL_FLOW_NEXT_LINE.name=错误用法 - 执行到下一行的无用流程控制
rule.findbugs.LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE.name=试验 - OpenJDK中存在潜在的丢失logger的风险,因为弱引用
rule.findbugs.NP_UNWRITTEN_FIELD.name=错误用法 - 读取未初始化的属性
rule.findbugs.DMI_UNSUPPORTED_METHOD.name=高危 - 调用不支持的方法
rule.findbugs.RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE.name=高危 - 重复比较非空值和null
rule.findbugs.EC_BAD_ARRAY_COMPARE.name=错误用法 - 调用equals(),与==效果一样
rule.findbugs.EI_EXPOSE_REP.name=恶意代码漏洞 - 可能通过返回一个可变对象的引用暴露了内部实现
rule.findbugs.NP_DEREFERENCE_OF_READLINE_VALUE.name=高危 - 没有判断readLine()的结果是否为空
rule.findbugs.UPM_UNCALLED_PRIVATE_METHOD.name=性能 - 从未用到的私有方法
rule.findbugs.NP_NULL_ON_SOME_PATH.name=错误用法 - 可能出现空指针引用
rule.findbugs.NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT.name=不良实践 - equals()方法没有检测null参数
rule.findbugs.EC_NULL_ARG.name=错误用法 - 使用空参数调用equals()
rule.findbugs.SE_BAD_FIELD_STORE.name=不良实践 - 非序列化值保存在序列化类的实例变量中
rule.findbugs.VO_VOLATILE_REFERENCE_TO_ARRAY.name=多线程错误 - 数组的volatile引用不会把数组元素也当做volatile来引用
rule.findbugs.NP_SYNC_AND_NULL_CHECK_FIELD.name=多线程错误 - 同步和空值检测发生在同一个属性上
rule.findbugs.DM_EXIT.name=不良实践 - 方法调用了System.exit(...)
rule.findbugs.RC_REF_COMPARISON.name=不良实践 - 怀疑进行了引用比较
rule.findbugs.SE_NO_SUITABLE_CONSTRUCTOR.name=不良实践 - 类是可序列化的,但是父类没有定义无参数构造方法
rule.findbugs.DC_DOUBLECHECK.name=多线程错误 - 可能对属性进行了双重检测
rule.findbugs.DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT.name=错误用法 - 在int上调用了Double.longBitsToDouble
rule.findbugs.RpC_REPEATED_CONDITIONAL_TEST.name=错误用法 - 重复判断条件
rule.findbugs.WMI_WRONG_MAP_ITERATOR.name=性能 - keySet迭代是低效的,使用entrySet代替
rule.findbugs.DLS_DEAD_LOCAL_STORE.name=高危 - 未用的局部变量
rule.findbugs.INT_BAD_REM_BY_1.name=错误用法 - 整数剩余模1
rule.findbugs.RV_RETURN_VALUE_IGNORED_BAD_PRACTICE.name=不良实践 - 方法忽略异常返回值
rule.findbugs.SA_LOCAL_SELF_ASSIGNMENT.name=高危 - 局部变量的自我赋值
rule.findbugs.MS_SHOULD_BE_FINAL.name=恶意代码漏洞 - 属性不是final,但是应该设置成final
rule.findbugs.SIC_INNER_SHOULD_BE_STATIC.name=性能 - 应该是一个静态内部类
rule.findbugs.NP_GUARANTEED_DEREF.name=错误用法 - null值一定会被调用
rule.findbugs.SE_READ_RESOLVE_MUST_RETURN_OBJECT.name=不良实践 - readResolve方法必须返回Object
rule.findbugs.NP_LOAD_OF_KNOWN_NULL_VALUE.name=高危 - 加载了已知的null值
rule.findbugs.BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION.name=性能 - 基本数据被装箱又被拆箱
rule.findbugs.CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE.name=不良实践 - 类定义了clone()但没有实现Cloneable
rule.findbugs.CO_ABSTRACT_SELF.name=不良实践 - 抽象类定义了协变的compareTo()方法
rule.findbugs.BAC_BAD_APPLET_CONSTRUCTOR.name=试验 - 错误的Applet构造方法依赖未初始化的AppletStub
rule.findbugs.EQ_GETCLASS_AND_CLASS_CONSTANT.name=不良实践 - equals方法因为子类失败
rule.findbugs.DB_DUPLICATE_SWITCH_CLAUSES.name=高危 - 在两个switch语句中使用了相同的代码
rule.findbugs.DB_DUPLICATE_BRANCHES.name=高危 - 在两个分支中使用了相同的代码
rule.findbugs.UOE_USE_OBJECT_EQUALS.name=试验 - 在final类上调用了equals,但是没有覆盖Object的equals方法
rule.findbugs.FI_USELESS.name=不良实践 - Finalizer除了调用父类的finalizer以外什么也没做
rule.findbugs.NP_ALWAYS_NULL.name=错误用法 - 调用了null指针
rule.findbugs.DMI_VACUOUS_SELF_COLLECTION_CALL.name=错误用法 - 集合的调用不能被感知
rule.findbugs.DLS_DEAD_LOCAL_STORE_IN_RETURN.name=错误用法 - 返回语句中的无用的赋值
rule.findbugs.IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD.name=错误用法 - 在run方法中的JUnit检验不能报告给JUnit
rule.findbugs.DMI_EMPTY_DB_PASSWORD.name=安全风险 - 空的数据库密码
rule.findbugs.DM_BOOLEAN_CTOR.name=性能 - 方法调用了低效的Boolean构造方法;使用Boolean.valueOf(...)代替
rule.findbugs.BC_IMPOSSIBLE_DOWNCAST.name=错误用法 - 不可能转型
rule.findbugs.BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS.name=不良实践 - Equals方法不应该假设任何有关参数类型的事宜
rule.findbugs.RV_EXCEPTION_NOT_THROWN.name=错误用法 - 异常创建后就丢弃了,没有抛出
rule.findbugs.VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG.name=错误用法 - 基本类型数组传递给一个期待可变对象类型参数的方法
rule.findbugs.LI_LAZY_INIT_UPDATE_STATIC.name=多线程错误 - 错误的延迟初始化和更新静态属性
rule.findbugs.SA_FIELD_SELF_ASSIGNMENT.name=错误用法 - 属性自身赋值
rule.findbugs.EQ_ALWAYS_FALSE.name=错误用法 - equals方法一直返回false
rule.findbugs.DMI_RANDOM_USED_ONLY_ONCE.name=不良实践 - Random对象创建后只用了一次
rule.findbugs.NM_CLASS_NOT_EXCEPTION.name=不良实践 - Class没有继承Exception,虽然名字像一个异常
rule.findbugs.SA_LOCAL_DOUBLE_ASSIGNMENT.name=高危 - 给局部变量双重赋值
rule.findbugs.NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS.name=错误用法 - 方法调用传递null给非空参数 (ALL_TARGETS_DANGEROUS)
rule.findbugs.NP_TOSTRING_COULD_RETURN_NULL.name=不良实践 - toString方法可能返回null
rule.findbugs.BC_BAD_CAST_TO_ABSTRACT_COLLECTION.name=高危 - 转换成抽象集合值得怀疑
rule.findbugs.NM_LCASE_HASHCODE.name=类定义了hashcode(); 应该是hashCode()吧?
rule.findbugs.RU_INVOKE_RUN.name=多线程错误 - 在线程中调用了run(你的意思是再启动一次么?)
rule.findbugs.DMI_INVOKING_TOSTRING_ON_ARRAY.name=错误用法 - 调用了数组的toString
rule.findbugs.NM_METHOD_NAMING_CONVENTION.name=方法名应该以小写字母开头
rule.findbugs.RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES.name=高危 - 重复比较两个null值
rule.findbugs.SA_LOCAL_SELF_COMPUTATION.name=错误用法 - 对一个变量进行无意义的自我计算 (比如 x & x)
rule.findbugs.MS_MUTABLE_HASHTABLE.name=恶意代码漏洞 - 属性是可变的Hashtable
rule.findbugs.RV_DONT_JUST_NULL_CHECK_READLINE.name=高危 - 方法丢掉了readLine的结果,在检测它是非空之后。
rule.findbugs.ES_COMPARING_STRINGS_WITH_EQ.name=不良实践 - 使用== 或 !=比较String
rule.findbugs.DL_SYNCHRONIZATION_ON_SHARED_CONSTANT.name=多线程错误 - 同步内部String可能导致死锁
rule.findbugs.MF_METHOD_MASKS_FIELD.name=错误用法 - 方法定义了一个变量,与实例变量同名。
rule.findbugs.EQ_SELF_USE_OBJECT.name=错误用法 - 协变equals()方法定义,继承了Object.equals(Object)
rule.findbugs.ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND.name=错误用法 - int值转换成float,然后传递给Math.round
rule.findbugs.GC_UNRELATED_TYPES.name=错误用法 - 泛型参数与方法参数没有相互关系
rule.findbugs.BC_IMPOSSIBLE_INSTANCEOF.name=错误用法 - instanceof一直返回false
rule.findbugs.SBSC_USE_STRINGBUFFER_CONCATENATION.name=性能 - 方法在循环中使用+进行字符串拼接
rule.findbugs.ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL.name=错误用法 - int转换成double,然后传递给Math.ceil
rule.findbugs.UG_SYNC_SET_UNSYNC_GET.name=多线程错误 - 未同步的getter方法,同步的setter方法
rule.findbugs.RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION.name=错误用法 - 非法的正则表达式
rule.findbugs.SA_FIELD_SELF_COMPUTATION.name=错误用法 - 无意义的自我计算 (比如 x & x)
rule.findbugs.DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS.name=错误用法 - 创建了没有任何线程的ScheduledThreadPoolExecutor
rule.findbugs.DMI_USELESS_SUBSTRING.name=高危 - 调用substring(0)会返回原值
rule.findbugs.IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD.name=高危 - 被继承的或外部的方法的模棱两可的调用
rule.findbugs.OS_OPEN_STREAM.name=不良实践 - 方法可能在关闭流时失败
rule.findbugs.HE_INHERITS_EQUALS_USE_HASHCODE.name=不良实践 - 类继承了equals(),但使用了Object.hashCode()
rule.findbugs.SE_NONFINAL_SERIALVERSIONID.name=不良实践 - serialVersionUID不是final的
rule.findbugs.EQ_SELF_NO_OBJECT.name=不良实践 - 协变equals()方法定义
rule.findbugs.SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH.name=由于switch语句导致的无用存储
rule.findbugs.SW_SWING_METHODS_INVOKED_IN_SWING_THREAD.name=不良实践 - 某些swing方法需要在swing线程中调用
rule.findbugs.VA_FORMAT_STRING_ILLEGAL.name=错误用法 - 非法的格式化字符串
rule.findbugs.DM_NUMBER_CTOR.name=性能 - 方法调用低效的数字构造方法;使用静态valueOf代替
rule.findbugs.RV_REM_OF_RANDOM_INT.name=高危 - 其余32位带符号随机整数
rule.findbugs.EQ_COMPARING_CLASS_NAMES.name=错误用法 - equals方法比较类名而不是比较类
rule.findbugs.ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD.name=高危 - 通过一个实例方法更新静态属性
rule.findbugs.TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED.name=错误用法 - 某个值使用了注解标记不会限制类型,但是这个限制是必须的
rule.findbugs.NS_NON_SHORT_CIRCUIT.name=高危 - 可疑的非短路逻辑
rule.findbugs.VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT.name=错误用法 - 格式化字符串没有前面的参数
rule.findbugs.SE_PRIVATE_READ_RESOLVE_NOT_INHERITED.name=高危 - 私有readResolve方法不是继承自父类
rule.findbugs.RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE.name=高危 - 对一个已知不是null的值重复进行空值判断
rule.findbugs.NM_LCASE_TOSTRING.name=类定义了tostring(); 应该是toString()吧?
rule.findbugs.HSC_HUGE_SHARED_STRING_CONSTANT.name=性能 - 巨大的字符串常量在多个类文件中间重复了
rule.findbugs.SE_TRANSIENT_FIELD_NOT_RESTORED.name=不良实践 - Transient属性没有再反序列化时被设置
rule.findbugs.JLM_JSR166_LOCK_MONITORENTER.name=多线程错误 - 在java.util.concurrent Lock上进行了同步
rule.findbugs.EQ_ALWAYS_TRUE.name=错误用法 - equals方法总是返回true
rule.findbugs.ISC_INSTANTIATE_STATIC_CLASS.name=不良实践 - 只提供静态方法的类不需要实例化
rule.findbugs.ICAST_IDIV_CAST_TO_DOUBLE.name=高危 - int相除的结果转换成double或float
rule.findbugs.RC_REF_COMPARISON_BAD_PRACTICE.name=错误用法 - 可疑的引用与常量的比较
rule.findbugs.FI_EXPLICIT_INVOCATION.name=不良实践 - 直接调用finalizer
rule.findbugs.ESync_EMPTY_SYNC.name=多线程错误 - 空的同步块
rule.findbugs.DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION.name=错误用法 - 不要使用removeAll清空集合
rule.findbugs.SE_BAD_FIELD.name=在序列化类中出现了非transient也非serializable的实例属性
rule.findbugs.NP_STORE_INTO_NONNULL_FIELD.name=错误用法 - 属性已经标记为NonNull,但是设置了一个null值
rule.findbugs.IT_NO_SUCH_ELEMENT.name=不良实践 - 迭代器的next()方法不能抛出NoSuchElementException
rule.findbugs.HRS_REQUEST_PARAMETER_TO_HTTP_HEADER.name=安全风险 - HTTP响应拆分漏洞
rule.findbugs.DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED.name=高危 - 希望传入Runnable的地方传入了一个Thread
rule.findbugs.NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH.name=错误用法 - null值会在exception处理中被用到
rule.findbugs.RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE.name=高危 - 已知的null值被重复的检测
rule.findbugs.DMI_CALLING_NEXT_FROM_HASNEXT.name=错误用法 - hasNext方法调用了next方法
rule.findbugs.HE_HASHCODE_USE_OBJECT_EQUALS.name=不良实践 - 定义了hashCode()的类使用了Object.equals()
rule.findbugs.VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED.name=错误用法 - 需要使用printf样式时使用了MessageFormat
rule.findbugs.NP_BOOLEAN_RETURN_NULL.name=不良实践 - 方法返回boolean类型返回了null
rule.findbugs.RI_REDUNDANT_INTERFACES.name=高危 - 类实现了父类一样的接口
rule.findbugs.DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE.name=多线程错误 - 在装箱的基本属性上使用了同步
rule.findbugs.STCAL_STATIC_CALENDAR_INSTANCE.name=多线程错误 - 静态Calendar
rule.findbugs.RR_NOT_CHECKED.name=不良实践 - 方法忽略InputStream.read()的返回值
rule.findbugs.IL_INFINITE_RECURSIVE_LOOP.name=错误用法 - 明显的无限递归循环
rule.findbugs.DMI_NONSERIALIZABLE_OBJECT_WRITTEN.name=高危 - 非持久化的对象写入了ObjectOutput
rule.findbugs.GC_UNCHECKED_TYPE_IN_GENERIC_CALL.name=不良实践 - 泛型调用中使用了未检查的类型
rule.findbugs.IMA_INEFFICIENT_MEMBER_ACCESS.name=试验 - 方法访问了一个拥有的类的私有成员
rule.findbugs.FI_PUBLIC_SHOULD_BE_PROTECTED.name=恶意代码漏洞 - Finalizer应该是protected,不能是public
rule.findbugs.RV_CHECK_FOR_POSITIVE_INDEXOF.name=高危 - 方法检查检查String.indexOf的结果是否为正数
rule.findbugs.ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT.name=高危 - 无符号右移转换为short/byte
rule.findbugs.DM_STRING_VOID_CTOR.name=性能 - 方法调用了低效的new String()构造方法
rule.findbugs.RE_POSSIBLE_UNINTENDED_PATTERN.name=错误用法 - "."用作正则表达式
rule.findbugs.WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL.name=多线程错误 - 在getClass上使用同步而不是在class文字上
rule.findbugs.ICAST_BAD_SHIFT_AMOUNT.name=错误用法 - 右移的数值不在0..31范围内
rule.findbugs.SF_SWITCH_FALLTHROUGH.name=Switch语句中一个case失败以后进入了下一个case
rule.findbugs.DP_DO_INSIDE_DO_PRIVILEGED.name=不良实践 - 方法调用应该在doPrivileged块中
rule.findbugs.NO_NOTIFY_NOT_NOTIFYALL.name=多线程错误 - 使用notify()而不是notifyAll()
rule.findbugs.SS_SHOULD_BE_STATIC.name=性能 - 未读取的属性:这个属性是否应该是static的?
rule.findbugs.DM_RUN_FINALIZERS_ON_EXIT.name=不良实践 - 方法调用了危险的runFinalizersOnExit方法
rule.findbugs.MS_FINAL_PKGPROTECT.name=恶意代码漏洞 - 属性应该同时是final 和 package protected的
rule.findbugs.BC_BAD_CAST_TO_CONCRETE_COLLECTION.name=高危 - 转换成具体集合可能有问题
rule.findbugs.BIT_IOR_OF_SIGNED_BYTE.name=错误用法 - 在带符号的byte值上进行位OR运算
rule.findbugs.MSF_MUTABLE_SERVLET_FIELD.name=多线程错误 - 可变的servlet属性
rule.findbugs.SE_BAD_FIELD_INNER_CLASS.name=不良实践 - 非serializable类有一个可序列化的内部类
rule.findbugs.BIT_ADD_OF_SIGNED_BYTE.name=错误用法 - 在带符号的byte值上进行位add运算
rule.findbugs.FI_FINALIZER_ONLY_NULLS_FIELDS.name=不良实践 - Finalizer中子还有null属性
rule.findbugs.DE_MIGHT_IGNORE.name=不良实践 - 方法可能忽略异常
rule.findbugs.XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER.name=安全风险 - Servlet反射跨域脚本漏洞
rule.findbugs.ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD.name=多线程错误 - 使用同步的属性可能发生改变
rule.findbugs.SQL_BAD_PREPARED_STATEMENT_ACCESS.name=错误用法 - 方法尝试访问PreparedStatement参数的索引是0
rule.findbugs.DM_CONVERT_CASE.name=国际化 - 考虑使用国际化参数型的调用方法版本
rule.findbugs.SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS.name=高危 - 类的transient属性不能序列化
rule.findbugs.NN_NAKED_NOTIFY.name=多线程错误 - 未使用同步包裹的notify
rule.findbugs.VA_FORMAT_STRING_MISSING_ARGUMENT.name=错误用法 - 格式化字符串引用的参数丢失
rule.findbugs.IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION.name=不良实践 - 父类初始化时使用了子类
rule.findbugs.SA_LOCAL_SELF_COMPARISON.name=错误用法 - 自己和自己的值比较
rule.findbugs.IM_BAD_CHECK_FOR_ODD.name=高危 - 对奇偶判断不能用于负数
rule.findbugs.NP_CLOSING_NULL.name=错误用法 - close()调用了一个永远是null的值
rule.findbugs.XSS_REQUEST_PARAMETER_TO_JSP_WRITER.name=安全风险 - JSP反射调用跨域脚本漏洞
rule.findbugs.IS_FIELD_NOT_GUARDED.name=多线程错误 - 属性不能保证同步访问
rule.findbugs.DM_GC.name=性能 - 直接调用垃圾回收,特别是在性能测试中的可疑代码
rule.findbugs.IM_MULTIPLYING_RESULT_OF_IREM.name=错误用法 - 整数乘法的结果是整数
rule.findbugs.SE_COMPARATOR_SHOULD_BE_SERIALIZABLE.name=不良实践 - Comparator没有实现Serializable
rule.findbugs.HE_HASHCODE_NO_EQUALS.name=不良实践 - 类定义了hashCode()但是没定义equals()
rule.findbugs.MF_CLASS_MASKS_FIELD.name=错误用法 - 类定义了属性覆盖了父类的属性
rule.findbugs.NM_VERY_CONFUSING_INTENTIONAL.name=不良实践 - 非常迷惑的方法名称(可能是内部方法)
rule.findbugs.SR_NOT_CHECKED.name=不良实践 - 方法忽略了InputStream.skip()的结果
rule.findbugs.LI_LAZY_INIT_STATIC.name=多线程错误 - 错误的对static属性进行了延迟初始化
rule.findbugs.DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION.name=错误用法 - 不能使用反射检测没有标记为runtime rentention的注解的存在
rule.findbugs.ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH.name=不良实践 - 方法可能在关闭database资源时因为异常失败
rule.findbugs.BIT_IOR.name=错误用法 - 不兼容的位掩码(BIT_IOR)
rule.findbugs.ODR_OPEN_DATABASE_RESOURCE.name=不良实践 - 方法可能在关闭database资源时失败
rule.findbugs.IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN.name=错误用法 - 参数没有被使用,但是被重新赋值了
rule.findbugs.SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING.name=安全风险 - 使用非常量字符串创建了一个PreparedStatement
rule.findbugs.UUF_UNUSED_FIELD.name=性能 - 无用的属性
rule.findbugs.RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE.name=错误用法 - 对一个已经使用的值进行了null检测
rule.findbugs.EQ_OTHER_USE_OBJECT.name=错误用法 - equals()方法定义没有覆盖Object.equals(Object)
rule.findbugs.SP_SPIN_ON_FIELD.name=多线程错误 - 方法对一个属性循环复制
rule.findbugs.SI_INSTANCE_BEFORE_FINALS_ASSIGNED.name=不良实践 - 在所有静态final属性赋值之前static初始化块创建了一个实例
rule.findbugs.NP_ALWAYS_NULL_EXCEPTION.name=错误用法 - 方法的异常路径中引用了空指针
rule.findbugs.MS_EXPOSE_REP.name=恶意代码漏洞 - Public static方法可能因为返回了一个数组而暴露内部实现
rule.findbugs.VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN.name=高危 - 非布尔参数使用%b进行了格式化
rule.findbugs.MS_PKGPROTECT.name=恶意代码漏洞 - 属性应该是package protected
rule.findbugs.NP_NONNULL_RETURN_VIOLATION.name=错误用法 - 方法可能返回null,但是声明了 @NonNull
rule.findbugs.J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION.name=不良实践 - 在HttpSession中保存了不可序列化的对象
rule.findbugs.NM_SAME_SIMPLE_NAME_AS_SUPERCLASS.name=不良实践 - 类名不应该和父类的名称相同
rule.findbugs.DMI_BLOCKING_METHODS_ON_URL.name=性能 - URL的equals 和 hashCode 方法会被堵塞
rule.findbugs.HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS.name=错误用法 - 在哈希构造中声明了不能哈希的类
rule.findbugs.UR_UNINIT_READ.name=错误用法 - 构造方法中对未初始化的类进行了读取
rule.findbugs.WA_NOT_IN_LOOP.name=多线程错误 - Wait不在循环中
rule.findbugs.DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR.name=错误用法 - 尝试修改ScheduledThreadPoolExecutor的最大数
rule.findbugs.RV_RETURN_VALUE_IGNORED2.name=错误用法 - 方法忽略了返回值
rule.findbugs.NM_FIELD_NAMING_CONVENTION.name=属性名应该以小写字母开头
rule.findbugs.FB_UNEXPECTED_WARNING.name=试验 - 未期待/未期望的findbugs警告
rule.findbugs.BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR.name=错误用法 - 基础类型拆箱后用于三元表达式
rule.findbugs.DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED.name=不良实践 - Classloaders应该只在doPrivileged块中被创建
rule.findbugs.NM_WRONG_PACKAGE.name=错误用法 - 方法没有覆盖父类的方法,因为参数的包不正确
rule.findbugs.IL_CONTAINER_ADDED_TO_ITSELF.name=错误用法 - 一个集合被添加到自身
rule.findbugs.CI_CONFUSED_INHERITANCE.name=高危 - 类是final的,但是定义了protected属性
rule.findbugs.HE_USE_OF_UNHASHABLE_CLASS.name=错误用法 - 在哈希数据结构中使用的类没有定义hashCode()方法
rule.findbugs.IJU_SUITE_NOT_STATIC.name=错误用法 - TestCase实现了非static suite方法
rule.findbugs.RS_READOBJECT_SYNC.name=多线程错误 - 类的readObject()方法不是同步的
rule.findbugs.AM_CREATES_EMPTY_JAR_FILE_ENTRY.name=不良实践 - 创建了一个空的jar方法入口
rule.findbugs.VA_FORMAT_STRING_BAD_CONVERSION_FROM_ARRAY.name=错误用法 - 使用格式化字符串对数组进行了无用的格式化
rule.findbugs.SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW.name=switch语句失败抛出异常导致无用的存储
rule.findbugs.RV_ABSOLUTE_VALUE_OF_HASHCODE.name=错误用法 - 错误的尝试计算带符号的32位hashcodde的绝对值
rule.findbugs.EQ_DONT_DEFINE_EQUALS_FOR_ENUM.name=错误用法 - 枚举定义了协变equals()方法定义
rule.findbugs.SA_FIELD_DOUBLE_ASSIGNMENT.name=错误用法 - 对属性进行双重赋值
rule.findbugs.DMI_COLLECTION_OF_URLS.name=性能 - URL的Maps 和 sets可能是性能大问题
rule.findbugs.NM_SAME_SIMPLE_NAME_AS_INTERFACE.name=不良实践 - 类名不应该和实现的接口名相同
rule.findbugs.UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR.name=错误用法 - 构造方法没有初始化属性
rule.findbugs.TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK.name=错误用法 - 值可能带着一个类型修饰符,一直使用的方式是与这个类型修饰符相悖的
rule.findbugs.SE_NONLONG_SERIALVERSIONID.name=不良实践 - serialVersionUID不是long型
rule.findbugs.RV_REM_OF_HASHCODE.name=高危 - hashCode的结果可能是负数negative
rule.findbugs.NS_DANGEROUS_NON_SHORT_CIRCUIT.name=高危 - 潜在危险使用非短跳出逻辑
rule.findbugs.USM_USELESS_SUBCLASS_METHOD.name=试验 - 方法代理到父类方法
rule.findbugs.ITA_INEFFICIENT_TO_ARRAY.name=性能 - 方法使用了toArray()对空数组参数
rule.findbugs.DM_MONITOR_WAIT_ON_CONDITION.name=多线程错误 - 根据条件监控wait()的调用
rule.findbugs.BOA_BADLY_OVERRIDDEN_ADAPTER.name=错误用法 - 类覆盖了父类中实现的方法适配器错误
rule.findbugs.IC_INIT_CIRCULARITY.name=高危 - 初始化死循环
rule.findbugs.NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER.name=不良实践 - 使用的标记是未来java版本中的关键字
rule.findbugs.EC_UNRELATED_CLASS_AND_INTERFACE.name=错误用法 - equals()比较无关的类和接口
rule.findbugs.TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK.name=错误用法 - 值可能没有携带一个类修饰符,但是使用中会一直需要这个类修饰符
rule.findbugs.FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER.name=错误用法 - 测试是否与NaN相等
rule.findbugs.NM_CONFUSING.name=不良实践 - 迷惑的方法名
rule.findbugs.VA_FORMAT_STRING_ARG_MISMATCH.name=错误用法 - 格式化字符串参数的数目与占位符不相等
rule.findbugs.NP_NULL_ON_SOME_PATH_EXCEPTION.name=错误用法 - 方法的异常路径中可能引用空指针
rule.findbugs.DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE.name=多线程错误 - 同步装箱基本类型可能导致死锁
rule.findbugs.IJU_TEARDOWN_NO_SUPER.name=错误用法 - TestCase定义的tearDown没有调用super.tearDown()
rule.findbugs.SE_READ_RESOLVE_IS_STATIC.name=错误用法 - readResolve方法没有生命为static方法
rule.findbugs.NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE.name=高危 - 这个路径上空指针引用是不可实现的
rule.findbugs.UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS.name=错误用法 - 匿名内部类中定义的不可调用的方法
rule.findbugs.VA_FORMAT_STRING_BAD_CONVERSION.name=错误用法 - 提供的参数类型与格式化标记不符
rule.findbugs.EC_ARRAY_AND_NONARRAY.name=错误用法 - equals()用来比较数组和非数组
rule.findbugs.NM_BAD_EQUAL.name=类定义了equal(Object),应该是equals(Object)吧?
rule.findbugs.EC_UNRELATED_TYPES_USING_POINTER_EQUALITY.name=错误用法 - 使用指针比较不同的类型
rule.findbugs.STI_INTERRUPTED_ON_CURRENTTHREAD.name=错误用法 - currentThread()调用的不必要用法,调用了interrupted()
rule.findbugs.RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION.name=错误用法 - File.separator用做正则表达式
rule.findbugs.MWN_MISMATCHED_WAIT.name=多线程错误 - 不匹配的wait()
rule.findbugs.IL_INFINITE_LOOP.name=错误用法 - 明显的无限循环
rule.findbugs.NP_IMMEDIATE_DEREFERENCE_OF_READLINE.name=高危 - 立刻使用了readLine()的结果
rule.findbugs.SC_START_IN_CTOR.name=多线程错误 - 构造方法调用了Thread.start()
rule.findbugs.STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE.name=多线程错误 - 静态DateFormat
rule.findbugs.HE_EQUALS_NO_HASHCODE.name=不良实践 - 类定义了equals(),但是没有hashCode()
rule.findbugs.UL_UNRELEASED_LOCK.name=多线程错误 - 方法没有在任何路径中释放锁
rule.findbugs.PZLA_PREFER_ZERO_LENGTH_ARRAYS.name=高危 - 考虑返回空数组而不是null
rule.findbugs.SKIPPED_CLASS_TOO_BIG.name=高危 - 类太大不能分析
rule.findbugs.NP_ARGUMENT_MIGHT_BE_NULL.name=错误用法 - 方法没有检查空参数
rule.findbugs.UM_UNNECESSARY_MATH.name=性能 - 方法常量调用了静态Math类方法
rule.findbugs.NM_WRONG_PACKAGE_INTENTIONAL.name=不良实践 - 方法没有覆盖父类的方法因为参数包名错误
rule.findbugs.NP_NONNULL_PARAM_VIOLATION.name=错误用法 - 方法传递null给一个非空参数
rule.findbugs.BIT_AND_ZZ.name=错误用法 - 检查 ((...) & 0) == 0 是否成立
rule.findbugs.HRS_REQUEST_PARAMETER_TO_COOKIE.name=安全风险 - HTTP cookie可能来自不被信任的输入
rule.findbugs.SQL_BAD_RESULTSET_ACCESS.name=错误用法 - 方法尝试访问一个ResultSet,但是使用的index是0
rule.findbugs.INT_VACUOUS_COMPARISON.name=高危 - 整形的空比较
rule.findbugs.EQ_COMPARETO_USE_OBJECT_EQUALS.name=不良实践 - 类定义了compareTo(...),但使用了Object.equals()
rule.findbugs.DMI_HARDCODED_ABSOLUTE_FILENAME.name=高危 - 类包含一个硬编码的绝对路径
rule.findbugs.DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES.name=错误用法 - 集合不应该包含自身
rule.findbugs.URF_UNREAD_FIELD.name=性能 - 读不到的属性
rule.findbugs.DLS_OVERWRITTEN_INCREMENT.name=错误用法 - 重写了自增
rule.findbugs.BIT_SIGNED_CHECK.name=不良实践 - 检测带符号的位运算
rule.findbugs.UWF_NULL_FIELD.name=错误用法 - 属性曾经设置为null
rule.findbugs.DE_MIGHT_DROP.name=不良实践 - 方法可能抛出异常
rule.findbugs.DMI_BAD_MONTH.name=错误用法 - 对于month错误的常量值
rule.findbugs.MS_MUTABLE_ARRAY.name=恶意代码漏洞 - 属性是可变数组
rule.findbugs.SE_INNER_CLASS.name=不良实践 - 可序列化的内部类
rule.findbugs.OS_OPEN_STREAM_EXCEPTION_PATH.name=不良实践 - 方法可能在关闭流时因为异常而失败
rule.findbugs.AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION.name=并发抽象的顺序调用可能不是原子的
rule.findbugs.BX_UNBOXING_IMMEDIATELY_REBOXED.name=装箱的值被拆箱,然后立刻重新装箱了
rule.findbugs.CO_COMPARETO_RESULTS_MIN_VALUE.name=compareTo()或compare()返回Integer.MIN_VALUE
rule.findbugs.DLS_DEAD_LOCAL_STORE_SHADOWS_FIELD.name=无用的局部变量可能与实例属性同名
rule.findbugs.DMI_ARGUMENTS_WRONG_ORDER.name=方法参数顺序翻转
rule.findbugs.DMI_BIGDECIMAL_CONSTRUCTED_FROM_DOUBLE.name=由double构造BigDecimal时没有指定精确度
rule.findbugs.DMI_DOH.name=一个明显不合理的方法调用
rule.findbugs.DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS.name=一个入口的添加可能因为重用Entry对象导致失败
rule.findbugs.DM_DEFAULT_ENCODING.name=信任默认字符编码
rule.findbugs.ICAST_INT_2_LONG_AS_INSTANT.name=int转换成long,用来当做绝对时间
rule.findbugs.INT_BAD_COMPARISON_WITH_INT_VALUE.name=错误比较int值和long常量
rule.findbugs.JML_JSR166_CALLING_WAIT_RATHER_THAN_AWAIT.name=在util.concurrent抽象中使用监控样式的wait方法
rule.findbugs.NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD.name=读取了未初始化的public或protected属性
rule.findbugs.OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE.name=方法可能因为checked exception导致清理流或资源失败
rule.findbugs.PZ_DONT_REUSE_ENTRY_OBJECTS_IN_ITERATORS.name=不用在iterator里重用entry对象
rule.findbugs.RV_CHECK_COMPARETO_FOR_SPECIFIC_RETURN_VALUE.name=compareTo返回的值与指定的值进行检测
rule.findbugs.RV_NEGATING_RESULT_OF_COMPARETO.name=调换了compareTo()/compare()结果的正负
rule.findbugs.RV_RETURN_VALUE_IGNORED_INFERRED.name=方法忽略了返回值,这是正常的吗?
rule.findbugs.SA_LOCAL_SELF_ASSIGNMENT_INSTEAD_OF_FIELD.name=局部变量给自己赋值而不是赋值到实例变量中
rule.findbugs.URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD.name=未被读取的public/protected属性
rule.findbugs.UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD.name=未被使用的public 或 protected 属性
rule.findbugs.UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD.name=未初始化的public 或 protected 属性
rule.findbugs.VA_FORMAT_STRING_USES_NEWLINE.name=格式化代码应该使用%n代替\n
rule.findbugs.VO_VOLATILE_INCREMENT.name=volatile的自增操作不是原子的

转载于:https://my.oschina.net/u/921876/blog/398289

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从FindBugs中学Java【一】 的相关文章

  • Python 中“is”运算符的语义是什么?

    如何is运算符确定两个对象是否相同 它是如何工作的 我找不到它的记录 来自文档 http docs python org reference datamodel html 每个对象都有一个身份 一个类型 和一个值 对象的身份 一旦发生就永远
  • CompletableFuture SupplyAsync

    我刚刚开始探索 Java 8 的一些并发特性 让我有点困惑的一件事是这两个静态方法 CompletableFuture
  • Apache Camel - 路由中的事务

    我有一个关于 Apache Camel 的一般性问题 我无法找到聚合器是否已进行交易 如果是交易 交易是如何实现的 聚合的速度有多快 将消息发送到聚合器可以在事务中运行 您需要一个带有聚合器的持久存储来让传出消息充当事务 请参阅有关持久性的
  • Pandas 中每列的曲线拟合 + 外推值

    我有一个包含大约 300 列的数据集 每一列都与深度相关 Pandas DataFrame 的简化版本看起来像这样 import matplotlib pyplot as plt import numpy as np import pand
  • 为什么 pip 已经是最新的了却要求我升级?

    我全新安装了 python 3 7 1 64 位 并使用最新的 pyCharm 作为我的 IDE 我在这台机器上没有安装其他 python 我去安装 numpy 并收到以下消息 venv C Users John PycharmProjec
  • 何时对字符串文字使用 intern()

    我看到很多这样的遗留代码 class A public static final String CONSTANT value intern 我看不出使用 intern 的任何原因 因为在 Javadoc 中可以读到 所有文字字符串和字符串值
  • 使用 Python-VLC 的 PyInstaller:无属性“media_player_new”错误

    我使用 Python VLC 创建视频播放器 并使用 PyInstaller 在 Windows 10 计算机上生成可执行文件 最初 它给了我错误 Import Error Failed to load dynlib dll libvlc
  • Pygame:有人可以帮我实现双跳吗?

    我知道已经有其他关于此问题的帖子了 但我的运动系统与我发现的有点不同 所以随后我问这个问题 我的运动系统基于一个名为的命名元组Move up left right down 然后就是这个 def update self move block
  • 如何根据受保护的 String doInBackground 方法中 AsyncTask 的结果调用 Toast.makeText() ?

    我从 AsyncTask 中的数据库中获取数据 如果它为空 我想吐司一个警告文本 我在 AsyncTask 中尝试过 但我了解到它不是在工作线程中调用的 这是我的 doInBackground 方法 protected String doI
  • 如何在 Windows 上使用 Java Hotspot JVM 禁用小型转储 (mdmp) 文件生成

    目前 我有一个已部署的可执行 jar 文件 该文件在崩溃时会创建大型 7 Gb 小型转储文件 我想要一个导致崩溃原因的文本表示 而不是 JVM 状态的二进制文件 我尝试使用中找到的信息这个 CodeRanch 帖子 http www cod
  • 解析整数集的字符串并列出间隔

    I have 2 5 7 9 12 string 我想从中获取 2 5 7 8 9 12 列表 python中有没有内置的函数 Thanks UPD 我想 直接的答案是No 不管怎样 谢谢你的 片段 使用一个 建议者斯文 马尔纳克 s 2
  • 如何在类型提示中定义元组或列表的大小

    有没有办法在参数的类型提示中定义元组或列表的大小 目前我正在使用这样的东西 from typing import List Optional Tuple def function name self list1 List Class1 if
  • 不幸的是 Project_Name 已停止

    我有一个简单的应用程序 您可以在文本视图中输入文本并按提交 它会在另一个活动中显示文本 然而 当我按下提交时 给我消息 不幸的是 发送已停止 我查看了SO上的其他线程 但是不幸的是 myfirstproject 在 java 中停止工作错误
  • Java:易失性足以使类线程安全?

    我有一个关于 Java 中 volatile 语句的问题 请看这个构造的例子 class Master Foo is a class with thread safe methods public volatile Foo foo clas
  • 如何在 Android 应用程序退出之前进行一些清理?

    当我的 Android 应用程序终止时 是否有某种 onTerminate 方法可以进行一些清理 我想清除一些 SharedPreferences 我有一个活动 它保持几个数字的运行平均值 并将其存储在 SharedPreference 中
  • Django 中使用外键的抽象基类继承

    我正在尝试在 Django 支持的网站上进行模型继承 以遵守 DRY 我的目标是使用一个名为 BasicCompany 的抽象基类来为三个子类提供通用信息 Butcher Baker CandlestickMaker 它们位于各自的应用程序
  • 在android中测量不规则多边形的面积

    我正在开发一个应用程序 在其中我在地图上绘制多边形 并且我使用的地图不是谷歌 它的Mapsforge开源离线地图库 我可以通过将地理点转换为像素点来轻松在地图上绘制多边形 但在这里我想发现是不规则的多边形 为此我做了很多尝试 但它让我失败了
  • 如何使用 keras.backend.gradients() 获取梯度值

    我试图获得 Keras 模型的输出相对于模型输入 x 而不是权重 的导数 似乎最简单的方法是使用 keras backend 中的 梯度 它返回梯度张量 https keras io backend https keras io backe
  • 如何在不同的目录中执行python脚本?

    Solved对于可能觉得这有帮助的人 请参阅下面我的答案 我有两个脚本 a py 和 b py 在我当前的目录 C Users MyName Desktop MAIN 中 我运行 gt python a py 第一个脚本 a py 在我当前
  • 如何使 Django 自定义管理命令参数不再需要?

    我正在尝试在 django 中编写自定义管理命令 如下所示 class Command BaseCommand def add arguments self parser parser add argument delay type int

随机推荐

  • 深入理解 Spring Boot Starters 原理(手写Spring boot Start)

    版权声明 本文为博主原创文章 遵循 CC 4 0 by sa 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net zhaohong bo article details 89924053 一 Spri
  • 英特尔的集显和Nvidia的独显切换(切换之后永久有效)

    参考网址 https blog csdn net a850565178 article details 107979314 前提介绍 安装了nvidia驱动之后 有些电脑会发现setting的devices的Graphics显示的还是llv
  • SmartAndroid之SmartJump,告别onActivityResult

    SmartJump 需求 应用场景 实现思路 代码 调用示例 后记 需求 在跳转到另一个Activity后 通过回调直接获取到数据 应用场景 普通的activity跳转 回调获取数据可以使逻辑更清晰 第三方库中activity数据回调可以让
  • 实战案列:AntiDebug

    往期推荐 self debugging反调试 轮循检测技术 进程名称检测 Java层反调试 Anti Debug主要是通过各种函数去确定当前进程是否处于被调试的状态 一 IDA里面静态分析so文件 1 将文件拖入jdax gui中 进行静态
  • PLSQL字体设置常见问题

    PLSQL字体设置常见问题 从网络资源下载的PLSQL 字体默认的大小不太适合大屏幕的电脑 因为看起来字体很小 我们可打开PLSQL来设置字体的大小以及其他常规设置 一 字体太小 操作流程 菜单栏的Tools gt Preferences
  • 静态多态和动态多态

    多态 静态多态和动态多态 多态的实现主要分为静态多态和动态多态 静态多态主要是重载和模板 在编译的时候就已经确定 动态多态是用虚函数机制实现的 在运行期间动态绑定 举个例子 一个父类类型的指针指向一个子类对象时候 使用父类的指针去调用子类中
  • vue学习 十二 vue文件目录知晓 or 组件嵌套

    说明 我使用的是HBuilder 软件能用就可以了 查看顺序是 index html 入口文件 gt main js gt App vue 模板文件 可以看出能显示出欢迎页面 还有那个大V都在这里可以看到 gt components 自定义
  • Redis DEL删除命令是否会导致阻塞

    DEL命令是存在阻塞的可能性的 1 使用DEL命令删除key DEL keya keyb keyc 2 根据删除的key的数量和类型 操作的时间复杂度不同 删除N个key key中的数量为M则时间复杂度是O N M 删除一个字符串的key则
  • 类中有引用需要注意——非静态的引用成员错误提示,不能使用默认的赋值运算符

    我们知道 当我们我们没有定义赋值操作符时 编译器会生成一个默认的赋值操作符执行浅拷贝 就像默认构造函数一样是编译器默认生成的 而如果勒种有引用就需要注意一个大大的误区 我们知道引用在定义的时候就需要初始化 指定这个引用变量是哪个变量的别名
  • C常用标准库及函数

    常用头文件 stdio h stdlib h ctype h string h math h system h 1 stdio库 主要功能是输入输出操作 包括文件输入输出 标准输入输出 输出函数 int puts const char st
  • Method的invoke方法初步了解

    Java调试过程中 我们有时候会需要对JVM运行过程中哪出了问题进行调试 先从最基础的了解 我们都知道Java框架中方法的调用基本上都是通过反射机制来实施的 具体流程如下 1 方法的调用先检查AccessibleObject的overrid
  • IT项目管理-HW6

    1 a b c 最后一条为该项目的关键路径 长度为15天 d 完成该项目所需的最短时间可能是10天 3 根据 1 中介绍 看板在项目流程中载体的分类为两种 一种是实体看板 一种是互联网看板 实体看板是敏捷开发团队中使用的最多 最直接的一种看
  • 脉冲的三种形式

    脉冲信号可以分为AB相脉冲 脉冲 方向 CW CCW脉冲 这三种信号格式 在十几年前或者还有明显的相对优缺点和适用场合 现在就已经无所谓了 即使在使用上还是有所区分 也基本上是由于历史习惯 1 A B信号 位置传感器最喜欢的格式 因为 早期
  • 修改远程桌面端口bat批处理(windows)

    新建批处理 将以下内容复制进去即可 修改成功后会自动重启 echo off color f0 echo 修改远程桌面3389端口 支持Windows 2003 2008 2008R2 2012 2012R2 7 8 10 echo 自动添加
  • springboot 集成 elasticsearch(maven项目)

    1 搭建springboot项目 能跑起来 具体百度 我的springboot版本 1 5 9 RELEASE 2 本机或者服务器安装elasticsearch并启动服务成功 我本地Windows安装的elasticsearch版本6 1
  • geo算法了解学习以及选择

    需求 通过坐标了解到距离最近的桩号 建筑 景点 Mysql Sql语句 SELECT id ST Distance Sphere POINT item longitude item latitude POINT longitude lati
  • Postman第七篇:其他好用的功能及工具

    其他好用的功能及工具 分组 Collection 在刚开始一个项目时 为了后续便于组织和管理 把同属该项目的多个 API 放在一组里 所以要先去新建一个 Collection New gt Collection 使用了段时间后 建了多个分组
  • 如何创建一个自己的sphinx文档网站

    文章目录 前言 一 操作步骤 1 安装anaconda 2 启动python3 8环境 3 安装Sphinx 4 创建文件夹 5 初始化环境 6 编译 7 文件夹搭查看 8 搭建nginx查看 8 更换主题 9 错误修复 10 这里提供两个
  • IDEA学习记录19--sql注入与Statement预编译

    1 sql注入 package net xdclass web dao import java sql Connection import java sql DriverManager import java sql ResultSet i
  • 从FindBugs中学Java【一】

    2019独角兽企业重金招聘Python工程师标准 gt gt gt findbug 这里 中文列表 http svn codehaus org sonar plugins tags sonar l10n zh plugin 1 1 src