true、false、null、またはゼロなど、常に同じ結果になる式と条件を報告します。 そのような式は対応する定数値に置換することができます。 また、非常に多くの場合、コードにバグがあることを示しています。

例:

  // 常に true
  // 根本的な原因: && の代わりに || を使用している
  if (x > 0 || x < 10) {}

  System.out.println(str.trim());
  // 常に false
  // 根本的な原因: 変数が null チェックの前に逆参照された
  if (str == null) {}

このインスペクションの動作は、nullability アノテーション、@Contract アノテーション、@Range アノテーションなどのさまざまなアノテーションで制御できます。

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

IntelliJ IDEA 2022.3 より前は、このインスペクションは "定数条件および例外" インスペクションの一部でした。 現在、そのインスペクションは "定数値" と "null 許容性とデータフローの問題" の 2 つのインスペクションに分割されています。