407 votes

Utilisation de l'annotation @Nullable

J'ai vu une méthode dans Java déclarée comme:

 void foo(@Nullable Object obj)
{ ... }
 

Quelle est la signification de @Nullable ici? Est-ce que cela signifie que l'entrée pourrait être null ? Sans l'annotation, l'entrée peut toujours être nulle, donc je suppose que ce n'est pas juste ça?

Merci

428voto

JB Nizet Points 250258

Cela montre clairement que la méthode accepte les valeurs NULL et que si vous remplacez la méthode, vous devez également accepter les valeurs NULL.

Il sert également de conseil pour les analyseurs de code tels que FindBugs . Par exemple, si une telle méthode supprime son argument sans rechercher d'abord null, FindBugs émettra un avertissement.

92voto

Adam Sznajder Points 4770

Cette annotation est couramment utilisé pour éliminer NullPointerExceptions. @Nullable est souvent dit que ce paramètre peut être null. Bon exemple d'un tel comportement peut être trouvé dans Google Guice. Dans ce léger injection de dépendance cadre vous dire que cette dépendance pourrait être null. Si vous essayez de passer null et sans annotation, le cadre de refuser de faire son travail.

Ce qui est plus @Nullable peut être utilisé avec @NotNull d'annotation. Ici vous pouvez trouver quelques conseils sur la manière de les utiliser correctement. Contrôle de Code dans l'Ide vérifie les annotations et permet de déboguer le code.

18voto

reprogrammer Points 4831

Différents outils peuvent interpréter différemment la signification de @Nullable . Par exemple, Checker Framework et FindBugs gèrent différemment @Nullable .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X