报告始终产生相同结果的表达式和条件,如 true、false、null 或零。 此类表达式可被替换为相应的常量值。 但通常情况下,它们表示代码中存在 bug。

示例:

  // 始终为 true
  // 根本原因:使用了 ||,而非 &&
  if (x > 0 || x < 10) {}

  System.out.println(str.trim());
  // 始终为 false
  // 根本原因:在 null 检查之前变量被取消引用
  if (str == null) {}

检查行为可能由许多注解控制,例如为 null 性注解、@Contract 注解、@Range 注解等。

配置检查:

在 IntelliJ IDEA 2022.3 版本之前,此检查为“常量条件和异常”检查的一部分。 现在,它被拆分成两个检查:“常量值”和“为 null 性和数据流问题”。