呼び出された際に戻り値が使用されることがないメソッドを報告します。 このようなメソッドの戻り値の型は、void にできます。

Error Prone または AssertJ の @CanIgnoreReturnValue アノテーションが付いたメソッドは報告されません。 クイックフィックスを使用すると、メソッドシグネチャーが更新され、メソッド内から return ステートメントが除去されます。

例:


  // 可視性が protected または public に設定されている場合に報告される
  protected String myToUpperCase(String s) {
    return s.toUpperCase();
  }

  // 単純な setter、報告されるかどうかは設定次第
  public String setStr(String str) {
    myStr = str;
    return myStr;
  }

  void test() {
    setStr("value");          // 戻り値が使用されていない
    myToUpperCase("result");  // 戻り値が使用されていない
  }

両方のメソッドにクイックフィックスを適用後:


    protected void myToUpperCase(String s) {
      // 's.toUpperCase()' は副作用がないため
      // 'return' が完全に除去されています
    }

    public void setStr(String str) {
      myStr = str;
      // 'return' が除去されました
    }
  ...

注意: パフォーマンス上の理由から、一部のメソッドはエディターでハイライトしている間は報告されません。 すべての結果を表示するには、「コード | コードのインスペクション」または「コード | コードの解析 | インスペクション名を指定して実行」を使用してインスペクションを実行します。>

チェーン可能な呼び出しからの未使用の戻り値を無視するには、「チェーン可能なメソッドを無視する」オプションを使用します。

報告対象とする最大のメソッド可視性を制御するには、「報告対象とする最大のメソッド可視性」オプションを使用します。