true, false, null 또는 0과 같이 항상 같은 결과를 도출하는 표현식과 조건을 보고합니다.
이러한 표현식은 해당하는 상숫값으로 대체될 수 있으며, 코드 내에 버그가 있다는 의미일 수 있습니다.
예:
// 항상 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 가능성 및 데이터 흐름 문제를 포함한 두 가지 검사로 분할되었습니다.