true, false, null 또는 0과 같이 항상 같은 결과를 도출하는 표현식과 조건을 보고합니다. 이러한 표현식은 그에 해당하는 상숫값으로 바꿀 수 있습니다. 이런 경우는 코드 내에 버그가 있다는 것을 의미할 확률이 매우 높습니다.

예:

  // 항상 true
  // 근본 원인: ||이 && 대신 사용됩니다
  if (x > 0 || x < 10) {}

  System.out.println(str.trim());
  // 항상 false
  // 근본 원인: null 검사 전에 변수가 역참조되었습니다
  if (str == null) {}

null 값 가능성을 표시하는 어노테이션, @Contract 어노테이션, @Range 어노테이션 등 여러 어노테이션으로 검사 동작이 제어될 수 있습니다.

검사 구성:

IntelliJ IDEA 2022.3 이전에 이 검사는 '상수 조건 및 예외' 검사의 일부였습니다. 이제는 두 가지 검사인 '상숫값'과 'Null 가능성 및 데이터 흐름 문제'로 나뉩니다.