¿Cómo indicar que los campos miembros son @Nonnull por defecto?

Mi pregunta es un seguimiento deéste.

En versiones anteriores de FindBugs, era posible usar@DefaultAnnotation(Nonnull.class) o@DefaultAnnotationForFields(Nonnull.class) para indicar que todoscampos en un paquete debe ser tratado como@Nonnull. En la versión actual de FindBugs (2.0),@DefaultAnnotation y@DefaultAnnotationForFields están en desuso, y todos deberíamos usar JSR-305 en su lugar. Pero JSR-305 no parece cubrir todo lo que cubren las anotaciones de FindBugs (ahora en desuso).

losjavadoc sugiere una serie de alternativas:

@ParametersAreNonnullByDefault. Esto (obviamente) solo se aplica a los parámetros, no a los campos miembros.@CheckReturnValue, cuando se aplica a un tipo o paquete. De nuevo, esto no se aplica a los campos de miembros.@TypeQualifierDefault. Tal vez esto pueda hacer lo que quiera, pero no entiendo cómo funciona, y no puedo encontrar documentación o ejemplos sobre su uso o intención, además de algunos javadoc crípticos. Creo que me ayudará a crear mis propias anotaciones, pero ¿puedo estar seguro de que todas las herramientas (FindBugs, Eclipse, etc.) interpretarán esta nueva anotación correctamente (o incluso en absoluto)?

losjavadoc no proporciona ninguna sugerencia sobre cómo lidiar con su desaprobación.

Entonces, al usar las versiones actuales de FindBugs y / o JSR-305, ¿cómo debo indicar que todos los campos miembros en un paquete determinado (o incluso en una clase determinada) deben tratarse como@Nonnull? ¿Es incluso posible?

Respuestas a la pregunta(1)

Su respuesta a la pregunta