1. SonarQubeコードスキャンエラー分析:文字列リテラルは重複してはいけません

最近、コードスキャン関連のツールを使用して、開発されたコードの品質を評価し、多くの問題をスキャンし始めました。私の能力を向上させるには、これらのルールの詳細を検討する必要があります。この列は特別に開いています。1つは調査の概要、もう1つは記録です。成長プロセスは膨大な数のブロガーに力を与えます、私は誰もがそれを好きであることを望みます

文字列リテラルは重複してはいけません


文字列リテラルが重複すると、すべての出現箇所を更新する必要があるため、エラーが発生しやすいリファクタリングプロセスが発生します。

一方、定数は多くの場所から参照できますが、更新が必要なのは1つの場所だけです。


違反コード

デフォルトのしきい値は3です。

public void run() {
  prepare("action1");                              // Noncompliant - "action1" is duplicated 3 times
  execute("action1");
  release("action1");
}

@SuppressWarning("all")                            // Compliant - annotations are excluded
private void method1() { /* ... */ }
@SuppressWarning("all")
private void method2() { /* ... */ }

public String method3(String a) {
  System.out.println("'" + a + "'");               // Compliant - literal "'" has less than 5 characters and is excluded
  return "";                                       // Compliant - literal "" has less than 5 characters and is excluded
}

準拠ソリューション

private static final String ACTION_1 = "action1";  // Compliant

public void run() {
  prepare(ACTION_1);                               // Compliant
  execute(ACTION_1);
  release(ACTION_1);
}

例外

誤検知の発生を防ぐため、5文字未満のリテラルは除外されます。

おすすめ

転載: blog.csdn.net/jinhoward/article/details/108390373