true、false、null 或零。
此类表达式可被替换为相应的常量值,或者可能表明代码中存在 bug。
示例:
// 始终为 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 性和数据流问题。