반응형
@Nonnull 주석이 런타임에 확인되는 이유는 무엇입니까?
다음 서명이있는 기능이 있습니다.
public static String myFunction(@Nonnull String param)
param을 null로 사용하여 호출하면 다음 예외가 발생합니다.
Caused by: java.lang.IllegalArgumentException: Argument for @Nonnull parameter 'param' of com/MyClass.myFunction must not be null
at com.MyClass.$$$reportNull$$$0(MyClass.java)
javax.annotation.Nonnull은 런타임에 확인되지 않아야 합니다.
누가 실제로 예외를 던지고 그 이유는 무엇입니까?
추신: Oracle JDK 1.8.0_102를 사용하여 IntelliJ IDEA 2016.3에서 디버그 모드로 Tomcat 서버를 실행합니다.
IntelliJ IDEA에서 프로젝트를 컴파일할 때 컴파일된 클래스의 바이트코드를 계측하여 다양한 @Nonnull
주석 유형에 대한 런타임 검사를 추가합니다 . 이 동작은 다음 옵션에 의해 제어됩니다.
설정 | 빌드, 실행, 배포 | 컴파일러 | [x] null이 아닌 주석 메서드 및 매개 변수에 대한 런타임 어설션을 추가합니다.
ReferenceURL : https://stackoverflow.com/questions/40847472/why-nonnull-annotation-checked-at-runtime
반응형
'IT이야기' 카테고리의 다른 글
dataTable() 대 DataTable() - 차이점이 있는 이유와 함께 작동 (0) | 2021.09.30 |
---|---|
Haskell에서 새 모나드를 정의하면 Applicative에 대한 인스턴스가 발생하지 않습니다. (0) | 2021.09.29 |
Cordova Telemetry이란 (0) | 2021.09.29 |
익명 이벤트 핸들러 추가 및 제거 (0) | 2021.09.29 |
Tomcat은 웹 서버? 아니면 응용 프로그램 서버? (0) | 2021.09.28 |