いくつかの一般的なバグ発見問題

1. USFW_UNSYNCHRONIZED_SINGLETON_FIELD_WRITES ロック
2. WEM_WEAK_EXCEPTION_MESSAGING ログの詳細

     たとえば、ログ レコードは次のようになります。 log.info("file not found.")。この情報は非常に抽象的です。どのファイルが見つからないかに関する情報を追加する必要があります。log.info("file {} not found. 。"、 ファイル)。変数情報は、変数置換によってログに追加する必要があります。


3. EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC基本クラス
      には@Data アノテーションがあり、サブクラスにも @Data アノテーションがあります
      。

if (StringUtils.isNotBlank(zipPath)) {
    String parentPath = zipPath.getParent();
    if (StringUtils.isNotBlank(parentPath)) {
    
       String absPath = parentPath.toAbsolutePath();
       if (StringUtils.isNotBlank(absPath)) {
          desDirPath = absPath.toString();
       }
    }
}

5. IS2_INCONSISTENT_SYNC を同期する必要がある場合は、synchronized キーワードをメソッド宣言に直接追加します。
6. WMI_WRONG_MAP_ITERATOR は、entrySet を使用して走査します。

7. LSC_LITERAL_STRING_COMPARISON
      if (childProp != null && !childProp.equals("")) { // 先頭に "" を置きます

       childProp は null ではないと判断されましたが、この習慣を付けた方が良いです。定数情報は最初に定義する必要があり、ここでの比較は定数 "" を進める必要があります。一般的には、いくつかのツールやメソッドを使用することをお勧めしますが、ここでは StringUtils.isNotBlank(childProp) を 1 行のコードで実行できます。

8. SIC_INNER_SHOULD_BE_STATIC_ANON 匿名の内部クラスを使用しないでください。

9. DRE_DECLARED_RUNTIME_EXCEPTION クラス内で例外がスローされた場合、メソッドは例外がスローされることを宣言しないでください。
10. UTWR_USE_TRY_WITH_RESOURCES は、自動的に閉じられたリソースの閉じを処理します。

      try(){}catch(){} メソッドを使用してストリームを操作する (つまり、try-with-resources) 場合、ストリームを手動で閉じる必要はありません。

11. UCPM_USE_CHARACTER_PARAMETERIZED_METHOD 単一文字の問題

メソッドは長さ 1 の定数文字列を文字オーバーライド メソッドに渡します。
このメソッドは、char を受け取る同様のメソッドが公開されている場合に、長さ 1 の定数リテラル文字列をパラメータとしてメソッドに渡します。 
String よりも 1 つの文字を処理する方が簡単で便利です。

    StringBuffer および StringBuilder で文字列操作を追加する際に、" " や "a" などの単一の文字列が見つかった場合、まだ sb.append("") または sb.append("a") を使用している場合は、通常、次のことをお勧めします。代わりに sb .append('') または sb.append('a') を使用してください。2 つのメソッドは似ていますが、1 つは文字列であり、もう 1 つは文字であるという違いがあります。string IndexOf() メソッドを使用する場合も同様ですが、単一の文字列の場合は、文字を使用してインデックスを検索することをお勧めします。

おすすめ

転載: blog.csdn.net/feinifi/article/details/131737461