case ラベルの数が少なすぎる switch ステートメントと式を報告し、それらを if および else if ステートメントに書き換えることを提案します。

例 (最小分岐数 == 3):


  switch (expression) {
    case "foo" -> foo();
    case "bar" -> bar();
  }

クイックフィックス適用後:


  if ("foo".equals(expression)) {
    foo();
  } else if ("bar".equals(expression)) {
    bar();
  }

'default' 分岐のない完全な switch 式 (Java 14 以降) またはパターン switch ステートメント (Java 17 プレビュー) は報告されません。 これは、switchif に変換される場合にコンパイル時の完全性確認が失われ、それが望ましくない場合があるためです。

インスペクションの構成:

最小限必要な case ラベルの数を指定するには、「最小分岐数」フィールドを使用します。

パターン分岐がある switch ステートメントと式を報告をしないようにするには、「パターンの switch ステートメントを報告しない」オプションを使用します。 例:


  String result = switch(obj) {
    case String str -> str.trim();
    default -> "none";
  };

instanceof ステートメントを使用するよりも、単一のパターン分岐を持つ switch を保持するほうが望ましい場合があります。