주석 유효성 검사 작업 방법을 배우기위한 간단한 프로젝트를 작성했습니다.JetBrains의 @NotNull은 IDEA에서 프로젝트를 빌드했을 때만 작동합니다.
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>15.0</version>
</dependency>
을하고이 방법을 사용 : 내가 프로젝트를 빌드 할 때
public boolean add(@NotNull T entry){ ...
을 그 puspose를 들어 는 I (또한 내가 나를 위해 작동하지 않는, javax.validation 시도) 받는다는 종속성을 추가 IDEA, 다 괜찮아요,하지만 maven 명령으로 코드를 컴파일 할 때 작동하지 않습니다. 디 컴파일 된 클래스 파일에서 IDEA가 다른 방식으로 클래스를 컴파일하는 것으로 나타났습니다. 다음 체크를 추가합니다 :
if (entry == null) {
$$$reportNull$$$0(0);
}
그리고 maven은 아닙니다.
내가 잘못하고 있니? Jetbrains 나 javax validation과 상관없이 어떻게 사용해야하는지 알려주세요.
[복제시 @Nonnull 주석이 런타임에 확인되는 이유는 무엇입니까?] (http://stackoverflow.com/questions/40847472/why-nonnull-annotation-checked- at-runtime) –
이것은 IntelliJ IDEA 2016.3 기능입니다 (별로 좋지 않음). –