当前位置:   article > 正文

Findbugs 代码规范描述_findbugs 编码规范

findbugs 编码规范

Findbugs 代码规范描述

关键词规则名错误信息及修改建议
BxDM_BOXED_PRIMITIVE_TOSTRING使用static方法toString能够提高效率,推荐使用。
BxDM_NUMBER_CTOR因为Number构造函数的效率不高,推荐使用static方法valueOf。
DBDB_DUPLICATE_BRANCHES分支语句中的代码是相同的。因为代码重复,推荐删除分支语句的判断。
DLSDLS_DEAD_LOCAL_STORE局部变量被赋值,但是之后赋的值没有被使用,所以推荐不对该局部变量赋值。
DLSDLS_DEAD_STORE_OF_CLASS_LITERALjava.lang.Class的实例被保存到局部变量。因为这个实
例不会被使用,推荐删除该实例。
DmDM_BOOLEAN_CTOR使用方法valueOf()比使用Boolean的构造函数生成
Boolean对象更有效率,所以推荐使用方法valueOf()。
DmDM_STRING_CTOR因为使用String(String)构造函数生成新字符串会浪费内存,推荐使用原有字符串。
DmDM_STRING_TOSTRING由于类型变换前后的类型都是String,所以推荐不进行类型变换。
DmDM_STRING_VOID_CTOR生成空字符串时使用了new String()构造函数。由于直接赋值空字符串「”“」的效率较高,推荐直接赋值空字符串。
IPIP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN由于对参数的修改会被忽视掉,所以推荐删除该代码。
ITAITA_INEFFICIENT_TO_ARRAY如果象「myCollection.toArray(new
Foo[myCollection.size()」一样传入指定长度的数组参数内部处理中不会生成新的数组,处理效率会提高。推荐传入和变换前Collection的大小一样的数组。
J2EEJ2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION向本地变量进行了代入、后面没有使用过这値、建议避开这个代入。
LILI_LAZY_INIT_STATIC在类String的方法equals(),空文字列被check了、建议在方法length(length() == 0)进行check。
LILI_LAZY_INIT_UPDATE_STATIC参数的変更内容、不是覆盖,只是去掉、所以建议削除。
MLML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD交给方法Collection.toArray()长度为0的数组。「myCollection.toArray(new Foo[myCollection.size()」那样、根据指定変換源的Collection的长度、内部的処理中不生成新的数组、処理効率会提高。建议修改为把长度和変換源的Collection的size相同的数组交给方法。
NmNM_CLASS_NAMING_CONVENTION未使用分配的变量,建议将相应变量删除。
NPNP_ALWAYS_NULL调用了値可能为null的局部变量,可能会例外发生NullPointerException,建议在调用前追加null检查。
NPNP_ALWAYS_NULL_EXCEPTIONnull可能的变量被参照、因为有例外NullPointerException発生的可能性、建议参照之前进行null check。
NPNP_LOAD_OF_KNOWN_NULL_VALUEDB接続関連的资源没有被发布。建议追加发布资源処理。
NPNP_UNWRITTEN_FIELD例外発生時DB接続相关的资源未发布。建议将发布DB接続相关的资源的処理追加到finally中。
NSNS_DANGEROUS_NON_SHORT_CIRCUIT对象的参照明显不是null,建议将针对该参照的null检查删除。
ODRODR_OPEN_DATABASE_RESOURCE由于DB连接相关的资源没被释放,推荐追加释放资源的处理。
ODRODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH由于例异常发生时DB连接相关资源没被释放,推荐把DB连接相关的资源释放处理追加到finally中。
OSOS_OPEN_STREAM一直使用的是値为null的局部变量,建议使用定量null,代替局部变量。
OSOS_OPEN_STREAM_EXCEPTION_PATH由于例外发生时,流没被关掉,所以推荐把流关闭的处理追加到finally。
RCNRCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE只是为了调用interrupted()方法而调用Thread.currentThread()的。由于interrupted()方法是static方法,因此,建议修改为Thread.interrupted()的调用。
RCNRCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE循环中,字符串是用String连接的,但是使用StringBuffer连接更有効率,因此,建议使用StringBuffer。
RCNRCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE由于当对象是null的情况下,对该对象的使用会导致异常NullPointerException的抛出,推荐在对象被使用前进行null检查。
RERE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION目前是使用String构造器由String对象生成新的String对象,但是,由于原来的String对象可以使用,所以,建议不生成没用的String对象,而使用原来的String对象。
SASA_LOCAL_SELF_ASSIGNMENT由于局部变量对自身赋值没有意义,所以推荐删除该语
句。
STISTI_INTERRUPTED_ON_CURRENTTHREAD因为方法interrupted()是static,所以推荐修改成
Thread.interrupted()。
UCFUCF_USELESS_CONTROL_FLOW因为控制语句没被使用,推荐删除该语句。
WMIWMI_WRONG_MAP_ITERATOR和keySet相比,使用entryKey效率较高,推荐修改成entryKey。
to be continue…
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号