Java コードにはどの `@NotNull` アノテーションを選択する必要がありますか?
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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック







