Maison > Java > javaDidacticiel > Quelle annotation `@NotNull` dois-je utiliser dans mon code Java ?

Quelle annotation `@NotNull` dois-je utiliser dans mon code Java ?

Mary-Kate Olsen
Libérer: 2024-12-15 09:57:15
original
487 Les gens l'ont consulté

Which `@NotNull` Annotation Should I Use in My Java Code?

Choisir l'annotation @NotNull optimale pour votre code Java

Introduction

Dans le développement Java , les annotations de nullité jouent un rôle crucial dans l'amélioration de la lisibilité du code et dans l'exploitation des outils d'analyse de code statique pour éviter NullPointerExceptions. Cependant, l'abondance des annotations disponibles peut être écrasante, conduisant à une confusion quant à celle à choisir.

Analyse comparative

Pour orienter votre décision, voici une comparaison de plusieurs @NotNull couramment utilisés annotations :

  • javax.validation.constraints.NotNull : Conçu pour la validation d'exécution, pas pour l'analyse statique.
  • edu.umd.cs.findbugs .annotations.NonNull : Utilisé par FindBugs (maintenant obsolète) et son successeur SpotBugs.
  • javax.annotation.Nonnull : Basé sur JSR-305, qui est inactif mais peut être pris en charge par FindBugs.
  • org.jetbrains.annotations .NotNull : Utilisé par IntelliJ IDEA pour le statique analyse.
  • lombok.NonNull : Contrôle la génération de code dans le projet Lombok.
  • androidx.annotation.NonNull : Annotation de marqueur disponible dans Android.
  • org.eclipse.jdt.annotation.NonNull : Utilisé par Eclipse pour l'analyse de code statique.

Recommandation

Depuis JSR-305, qui visait à normaliser @NonNull et @Nullable annotations, est inactif depuis des années, il n’y a pas de consensus clair. Cependant, une approche pragmatique peut être adoptée :

Syntaxe

Pour une syntaxe propre et concise, il est recommandé d'utiliser javax.annotation.Nonnull. C'est le plus court et correspond au style préféré consistant à éviter les références explicites à des boîtes à outils tierces.

Implémentation

Bien que la plupart des annotations @NotNull aient une implémentation triviale, javax .annotation.Nonnull en a un plus long. Cependant, elle présente l'avantage d'être une annotation d'exécution, permettant des vérifications d'exécution en plus de celles de la compilation.

Contextes d'utilisation

Faites attention aux contextes d'utilisation soutenu par différentes annotations. Certains packages, comme org.jetbrains.annotations, autorisent les annotations sur les variables locales, tandis que d'autres ne le font pas. Tenez compte des exigences spécifiques de votre code et de votre chaîne d'outils lors de la sélection de l'annotation appropriée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal