Java - 메서드 인수에서 NotNull 주석 사용
오늘의 자습서에서는 @NotNull
주석에 대해 설명하고 코드 예제를 사용하여 Java에서 작업하는 동안 메서드 인수에서 이를 사용할 수 있는 방법을 보여줍니다.
@NotNull
주석 개요
null
값을 반환하지 않도록 변수 또는 메서드를 설정하려면 @NotNull
주석을 사용할 수 있습니다. 이것은 표준 JSR 주석이며 주석이 달린 속성 값이 null
이 아닌지 확인합니다.
@NotNull
의 특징은 메소드를 @NotNull
로 설정하면 null
값을 반환하지 않으며 변수가 @NotNull
로 설정되면 null
을 보유할 수 없다는 것입니다. 값.
중요한 점은 부모 메서드에 @NotNull
이 포함된 경우 해당 자식에 @NotNull
주석을 추가해야 한다는 것입니다. 다음으로 메서드 인수에서 사용하는 방법을 알아보기 위해 아래의 코드 펜스로 이동하겠습니다.
메서드 인수에서 @NotNull
주석 사용
예제 코드:
import javax.validation.constraints.NotNull;
public class JavaNotNull {
int sum(@NotNull int a, int b) {
return a + b;
}
public static void main(String args[]) {
JavaNotNull jnn = new JavaNotNull();
System.out.println("The sum is: " + jnn.sum(5, 5));
}
}
출력:
The sum is: 10
위의 예에서 @NotNull
에 필요한 패키지를 import javax.validation.constraints.NotNull;
으로 포함시킨 다음 sum()
이라는 메서드를 생성하여 해당 값을 로 설정했습니다. @NotNull
.
sum()
메서드는 두 변수 간의 합계 연산 결과를 반환합니다. 그런 다음 JavaNotNull
클래스의 개체를 만들고 해당 메서드 sum()
을 호출하여 위의 출력을 얻었습니다.
위 예제의 sum()
에 null
변수를 전달하려고 하면 어떻게 되는지 생각하고 계십니까?
답은 위의 예에서 메서드 변수를 @NotNull
로 설정했기 때문에 null
값을 받을 수 없다는 것입니다. 다음 업데이트된 예에서는 null
값을 sum()
메서드에 전달하여 어떤 일이 발생하는지 확인합니다.
업데이트된 예제 코드:
import javax.validation.constraints.NotNull;
public class JavaNotNull {
int add(@NotNull int a, int b) {
return a + b;
}
public static void main(String args[]) {
JavaNotNull jnn = new JavaNotNull();
// We are trying to pass a null value here
System.out.println("The sum is: " + jnn.add(null, 5));
}
}
이제 위의 코드 예제를 실행하려고 하면 아래와 같은 오류가 발생합니다. 메서드를 @NotNull
로 설정했기 때문에 null
값을 받을 수 없습니다.
error: Class names, 'JavaNotNull', are only accepted if annotation processing is explicitly requested
1 error
중요한 참고 사항은 null
값으로 메서드를 호출하고 해당 메서드가 @NotNull
로 설정된 경우입니다. 런타임에 NullPointerException
이 발생할 수 있습니다.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn