2016-10-21 12 views
0

최근 null 체크섬 주석 (@NotNull)을 사용하기로 결정 했으므로 Intellij Idea's annotations library을 사용하여 액세스합니다. 이 주석이 런타임시 값이 null인지 확인하기 위해 작동하는지 여부를 알아 내려고 노력하고 있습니다 (예 : NullPointerException을 던집니다. 기본값 (예 : null, 0)을 반환합니다. , 거짓)). 또한 이러한 주석이 작동하지 않는 경우 다른 세트가 런타임에 작동하는 더 표준화 된 주석 (예 : javax) 일 수 있습니까? 이것들이 작동하지 않으면 표준 널 체크섬 (if(x == null))으로 돌아가거나 표준 널 체크섬과 주석을 모두 사용해야합니까? 그리고 내가 여기있는 동안 @ Nullable 같은 주석은 좋은 생각입니까?런타임시 @NotNull이 작동합니까?

+1

null 주석의 주 목적은 컴파일러 또는 유사한 도구가 컴파일 타임에 null 관련 문제를 정적으로 감지하는 것을 돕는 것입니다. 이상적으로 정적 분석을 통과 한 Null 주석 처리 된 프로그램은 런타임에 NPE를 절대로 제기 할 수 없습니다. 생성 된 런타임 검사는 null 안전 주석의 주요 목적이 아닌 추가 안전망 일뿐입니다. OTOH, 필요한 null 검사를 주석 사용으로 대체하면 정적 분석이 필연적으로 문제를 알릴 수 있습니다. –

답변

1

예, 런타임시 확인하고 null 일 때 IllegalArgumentException을 던집니다. 컴파일러 설정에서이 기능을 활성화/비활성화 할 수 있습니다.