示例:
// 始终为 true
// 根本原因:使用了 ||,而非 &&
if (x > 0 || x < 10) {}
System.out.println(str.trim());
// 始终为 false
// 根本原因:在 null 检查之前变量被取消引用
if (str == null) {}
检查行为可能由许多注解控制,例如为 null 性注解、@Contract
注解、@Range
注解等。
配置检查:
if (alwaysFalseCondition) throw new IllegalArgumentException();
等条件。assert
语句。 默认情况下,该选项被禁用,这意味着断言视为被执行(-ea 模式)。 如果启用该选项,断言将被完全忽略(-da 模式)。在 IntelliJ IDEA 2022.3 版本之前,此检查为“常量条件和异常”检查的一部分。 现在,它被拆分成两个检查:“常量值”和“为 null 性和数据流问题”。