> Java > java지도 시간 > 내 Java 코드에 어떤 `@NotNull` 주석을 선택해야 합니까?

내 Java 코드에 어떤 `@NotNull` 주석을 선택해야 합니까?

Patricia Arquette
풀어 주다: 2024-12-30 19:31:09
원래의
389명이 탐색했습니다.

Which `@NotNull` Annotation Should I Choose for My Java Code?

Java 코드에 적합한 @NotNull 주석을 선택하는 방법

코드 가독성을 높이고 NullPointerException을 방지하기 위해 많은 개발자가 도구 활용을 모색합니다. IDE 정적 분석 및 FindBugs와 같은. 그러나 동등한 @NotNull/@NonNull 주석이 급증하는 것은 어려울 수 있습니다. 이 문서에서는 가장 적합한 옵션을 선택하는 데 도움이 되는 사용 가능한 옵션을 자세히 설명합니다.

동등한 주석

다음 목록은 다양한 패키지의 동등한 @NotNull 주석을 제공합니다.

  • javax.validation.constraints.NotNull(런타임 검증 만)
  • edu.umd.cs.findbugs.annotations.NonNull(FindBugs/SpotBugs)
  • javax.annotation.Nonnull(JSR-305 비활성)
  • org.jetbrains .annotations.NotNull(IntelliJ IDEA)
  • lombok.NonNull(프로젝트 Lombok)
  • androidx.annotation.NonNull(Android 주석 패키지)
  • org.eclipse.jdt.annotation.NonNull (Eclipse)

선택 기준

JSR 305가 비활성화된 상태에서 @NotNull 주석 선택에는 실용적인 접근 방식이 필요합니다.

구문

의 경우 스타일상의 이유로 특정 IDE, 프레임워크 또는 툴킷과 관련된 주석을 피하는 것이 좋습니다. 이는 다음을 제거합니다. 옵션:

  • android.support.annotation
  • edu.umd.cs.findbugs.annotations
  • org.eclipse.jdt.annotation
  • 영형 rg.jetbrains.annotations
  • org.checkerframework.checker.nullness.qual
  • lombok.NonNull

javax.annotation 또는 javax.validation.constraints?

추가 종속성이 필요한 javax.validation.constraints와 javax.annotation을 비교하면 해당 종속성에 대해 javax.annotation을 약간 선호하는 것으로 나타납니다. 간결함.

구현

유사점: 다음을 제외하고 모든 @NonNull 주석에는 간단한 구현이 있습니다.

  • org .jetbrains.annotations (사소한 구현)
  • javax.annotation(장기 구현)
  • javax.validation.constraints(런타임 주석으로 구현)

차이점: 런타임 주석(javax.annotation, javax.validation.constraints, org.checkerframework.checker.nullness.qual)은 추가 런타임 검사를 제공하지만 예상보다 영향이 적습니다.

사용 가능한 컨텍스트

주석은 사용 가능한 컨텍스트에 따라 다릅니다.

  • 일부는 JLS 9.6.4.1 스타일 컨텍스트를 따릅니다. (android.support.annotation, edu.umd.cs.findbugs.annotations, org.jetbrains.annotation, lombok, javax.validation.constraints).
  • 다른 것들은 모든 JLS 컨텍스트에서 주석을 활성화합니다(lombok, org.jetbrains.annotations).

결론

논의된 기준에 따라 @NotNull 주석에 대한 실용적인 선택은 javax.annotation.Nonnull입니다. 간결성, 런타임 주석 및 JLS 컨텍스트와의 호환성은 가독성, 정적 분석 및 런타임 검사를 위한 균형 잡힌 솔루션을 제공합니다.

위 내용은 내 Java 코드에 어떤 `@NotNull` 주석을 선택해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿