0 以外の定数を使用して Comparator.compare() または Comparable.compareTo() 呼び出しの結果を比較していることを報告します。 契約により、このようなメソッドは任意の整数 (-1、0、1 に限らない) を返す可能性があるため、特定の数値と比較することはお勧めできません。 一般的に使用されている比較メソッド (String.compareTo() など) の一部は、実際には [-1..1] の範囲を外れた値を返すため、そのような比較をするとプログラムの正常な動作に影響する可能性があります。

例:


  void validate(String s1, String s2) {
    // 1 と比較するのは誤りです
    if (s1.compareTo(s2) == 1) {
      throw new IllegalArgumentException("Incorrect order");
    }
  }

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


  void validate(String s1, String s2) {
    if (s1.compareTo(s2) > 0) {
      throw new IllegalArgumentException("Incorrect order");
    }
  }

2017.2 の新機能です