より抽象的な (より弱い) 型に変更できる変数とメソッドの戻り値の型を報告します。 そのような変更を行うとコードがより抽象的になり、再利用しやすくなります。

例:


  // Type of parameter can be weakened to java.util.List
  void processList(ArrayList<String> list) {
    if (list.isEmpty()) return;
    System.out.println("Processing");
    for (String s : list) {
      System.out.println("String: " + s);
    }
  }

型がインターフェース型に弱化される可能性がある場合にのみ問題を報告するには、下にある「インターフェースへの弱化のみ」チェックボックスを有効にします。

'var' キーワード (Java 10 以降) を使用して宣言されたローカル変数を報告しないようにするには、下にある「'var' 宣言されている変数の弱化を提案しない」チェックボックスを有効にします。

停止クラスは停止クラスよりも低いクラスへの弱化が可能な場合でも弱化を防ぐことを意図しています。 このような弱化を防ぐことで、可読性が向上する場合があります。