switch ステートメントに置換できる if ステートメントを報告します。
この置換により、通常はコードがより簡潔かつ明瞭になります。
例:
void test(String str) {
if (str.equals("1")) {
System.out.println(1);
} else if (str.equals("2")) {
System.out.println(2);
} else if (str.equals("3")) {
System.out.println(3);
} else {
System.out.println(4);
}
}
クイックフィックス適用後:
void test(String str) {
switch (str) {
case "1" -> System.out.println(1);
case "2" -> System.out.println(2);
case "3" -> System.out.println(3);
default -> System.out.println(4);
}
}
このインスペクションは、プロジェクトまたはモジュールの言語レベルが 7 以上の場合にのみ報告します。
報告対象とする if ステートメントの if 条件の最小分岐数を指定するには、「'if' 条件分岐の最小数」フィールドを使用します。 ターミナルの else 分岐 (if なし) はカウントされません。
プリミティブ型とボクシングした数値と文字の switch ステートメントを提案させるには、「数値の switch を提案する」オプションを使用します。
enum 定数の switch ステートメントを提案させるには、「列挙型の switch を提案する」オプションを使用します。
NullPointerException のみを導入できない switch ステートメントを提案するには、「null セーフな式でのみ提案する」オプションを使用します。