질문 Which @NotNull Java annotation should I use?은 구식이며 다소 의견을 기반으로합니다. 그 이후 Java 8이 출시되었습니다.null 분석 주석 패키지의 차이점은 무엇입니까?
Java 8은 유형의 주석 을 JSR 308의 통합으로 허용하지만 어떤 것도 제공되지 않습니다. JSR 308 Explained: Java Type Annotations by Josh Juneau에서 :
JSR 308 자바 유형에 주석, 자바 SE의 일부로 통합되어 제
...
컴파일러 체커 컴파일러 경고를 발생함으로써 규칙을 시행, 주석 코드를 확인하기 위해 기록 될 수있다 코드가 특정 요구 사항을 충족시키지 못하는 경우 Java SE 8은 기본 유형 검사 프레임 워크를 제공하지 않지만 유형 검사를 위해 사용자 정의 주석과 프로세서를 작성할 수 있습니다. Java 컴파일러에 대한 플러그인으로 사용하여 주석이 첨부 된 유형을 확인하고 시행 할 수있는 여러 가지 유형 검사 프레임 워크도 다운로드 할 수 있습니다. 유형 검사 프레임 워크는 주석 처리를 위해 컴파일러와 함께 사용되는 유형 주석 정의 및 하나 이상의 플러그 가능한 모듈로 구성됩니다.
- Eclipse's JDT Null Analysis의
org.eclipse.jdt.annotation
:@CanBeNull
및@CannotBeNull
적어도 어떤 종류의를 제공하는 유일한 솔루션을 고려는
, 나는 다음 (틀릴 수도)에 대한 정보를 발견했습니다. 다른 IDE에는 각각의 패키지가 있습니다. JSR 308을 사용하며 Java-8 이전 주석을 계속 지원합니다.
javax.annotation
. 휴면 JSR 305을 사용하면 Java 8의 유형 주석을 사용하지 않는 것처럼 보입니다. 오라클의 API에 통합되어 있지는 않지만 어떤 이유로 든 여전히 javax
도메인을 사용합니다. 이는 의미가 있음을 의미합니다.org.checkerframework.checker.nullness
. JSR 308 사용.javax.validation.constraints
. 어떻게 사용하는지 모르지만, 어쨌든 @CanBeNull
은 없습니다.일부는 정적 코드 분석에 사용되며 일부는 런타임 유효성 검사에 사용됩니다.
위 옵션 간의 실제 차이점은 무엇입니까? 표준이 될 것입니까? 아니면 모든 사람들이 자체 분석 프레임 워크를 작성하도록되어 있습니까?
내 의견은 다른 사용자를위한 것이며 내 의견을 잘못된 상자에 붙여 넣었습니다. 죄송합니다. 나는 그것을 삭제하고 다른 곳에 다시 붙여 넣을 것이다. – mernst