ホームページ > Java > &#&チュートリアル > Java コードにはどの `@NotNull` アノテーションを選択する必要がありますか?

Java コードにはどの `@NotNull` アノテーションを選択する必要がありますか?

Patricia Arquette
リリース: 2024-12-30 19:31:09
オリジナル
379 人が閲覧しました

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

Java コードに適切な @NotNull アノテーションを選択する方法

コードの可読性を高め、NullPointerExceptions を防ぐために、多くの開発者はツールを活用しようとしています。 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 コンテキストでアノテーションを有効にします。 (ロンボク島、 org.jetbrains.annotations).

結論

説明した基準に基づくと、@NotNull アノテーションの実用的な選択は javax.annotation.Nonnull です。その簡潔さ、実行時の注釈、JLS コンテキストとの互換性により、可読性、静的分析、および実行時チェックのバランスのとれたソリューションが提供されます。

以上がJava コードにはどの `@NotNull` アノテーションを選択する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート