Qué anotación Java @NonNull usar

Cuál es elmejor ¿Anotación 'no nula'?

"Mejor" en el sentido de

Forma estándar, p. pruebas futuras (por ejemplo, soporte de jdk estándar, etc.)Soporte de IDE (aparece en java doc para indicar el uso para desarrolladores)Soporte por herramientas de análisis estático como findbugsSoporte para análisis de tiempo de ejecución

Así es como se ve actualmente el mundo: se aprecia cualquier otra información:

javax.validation.constraints.NotNull (Docs)
El paquete + javax parece estar preparado para el futuro
- Parte de JEEno JSE En JSE necesitamosimportar libs adicionales.
- No compatible con herramientas de análisis estático (solo validación de tiempo de ejecución)

edu.umd.cs.findbugs.annotations.NonNull (docs)
- biblioteca externa y no unjavax paquete
- obsoleto desde findbugs versión 3.X
+ utilizado para análisis estático (por findbugs y, por lo tanto, Sonar)

javax.annotation.Nonnull (docs)
+ utilizado para análisis estático (en findbugs)
- JSR-305 está inactivo / muerto / desconocido como en ellista de correo de fb indicado. El autor Bill Pugh, incluso si se le pregunta directamente, no ha comentado el estado en años ...

org.eclipse.jdt.annotation_2.0.0 (docsinteresantepresentación)
+ usado para análisis estático (aunque en eclipse no en findbugs)
- patentado para eclipsar (no intenté usarlos de forma independiente)

org.jetbrains.annotations.NotNull (docs)
+ utilizado para análisis estático (en intelliJ no en findbugs)
- propiedad de IntelliJ (pero también disponible públicamente como jar)

lombok.NonNull(docs)
+ utilizado para controlar la generación de código
- anotación de propiedad

android.support.annotation.NonNull (docs)
+ análisis estático en android studio
- Anotación propietaria específica de Android

org.checkerframework.checker.nullness.qual.NonNull (docs)
+ JSR308 implementación que forma parte de Java8 (que introdujo la capacidad de escribir anotaciones en diferentes partes de su código, pero no introdujo nuevas anotaciones)
+ utilizado para el código estático (aunque no findbugs)y análisis de tiempo de ejecución
- lib externo sin embargo parece seravalado por la gente de java

Actualmente tendria a laMarco de corrector pero estoy esperando otras opiniones ...

[Descargo de responsabilidad] Sé que la pregunta se hizo aquí, sin embargo, no se respondió (o la respuesta fue incorrecta / incompleta / desactualizada)[/Descargo de responsabilidad]

Respuestas a la pregunta(1)

Su respuesta a la pregunta