例:
// 常に true
// 根本的な原因: && の代わりに || を使用している
if (x > 0 || x < 10) {}
System.out.println(str.trim());
// 常に false
// 根本的な原因: 変数が null チェックの前に逆参照された
if (str == null) {}
このインスペクションの動作は、nullability アノテーション、@Contract アノテーション、@Range アノテーションなどのさまざまなアノテーションで制御できます。
インスペクションの構成:
if (alwaysFalseCondition) throw new IllegalArgumentException(); なども含まれます。assert ステートメントの取り扱いを制御するには、「assert ステートメントを無視する」オプションを使用します。 このオプションは、デフォルトでは無効化されており、アサーションは実行されるものとして扱われます (-ea モード)。 このオプションが有効な場合、アサーションは完全に無視されます (-da モード)。IntelliJ IDEA 2022.3 より前は、このインスペクションは "定数条件および例外" インスペクションの一部でした。 現在、そのインスペクションは "定数値" と "null 許容性とデータフローの問題" の 2 つのインスペクションに分割されています。