예:
if (array.length < index) {
System.out.println(array[index]);
} // 배열 색인이 항상 범위를 벗어납니다
if (str == null) System.out.println("str is null");
System.out.println(str.trim());
// 마지막 구문이 NPE를 던질 수 있습니다
@NotNull
Integer square(@Nullable Integer input) {
// 메서드 컨트랙트 위반입니다
return input == null ? null : input * input;
}
null 값 가능성을 표시하는 어노테이션, @Contract 어노테이션, @Range 어노테이션 등 여러 어노테이션으로 검사 동작이 제어될 수 있습니다.
검사 구성:
@Nullable 어노테이션 전달을 제안합니다. 또한 어노테이션 구성 버튼을 사용해 null 값 가능성을 표시하는 어노테이션을 구성할 수도 있습니다.null 리터럴이 전달된 호출 위치가 있는 메서드 매개변수를 보고합니다.@Nullable 어노테이션이 추가되었으나 항상 null이 아닌 값을 반환하는 메서드를 보고합니다. 이 경우 어노테이션을 @NotNull로 변경하는 것이 좋습니다.assert 문이 취급되는 방식을 제어합니다. 기본적으로 이 옵션은 비활성화되어 있습니다. 즉, 어설션이 실행되는 것으로 간주됩니다(-ea 모드). 이 옵션을 활성화하면 어설션이 완전히 무시됩니다(-da 모드).IntelliJ IDEA 2022.3 이전에 이 검사는 '상수 조건 및 예외' 검사의 일부였습니다. 이제는 두 가지 검사인 '상숫값'과 'Null 가능성 및 데이터 흐름 문제'로 나뉩니다.