Jak wskazać, że pola członkowskie są domyślnie @Nonnull?

Moje pytanie jest kontynuacjąten.

W poprzednich wersjach FindBugs było możliwe użycie@DefaultAnnotation(Nonnull.class) lub@DefaultAnnotationForFields(Nonnull.class) wskazać to wszystkopola w pakiecie należy traktować jako@Nonnull. W obecnej wersji FindBugs (2.0),@DefaultAnnotation i@DefaultAnnotationForFields są przestarzałe i wszyscy powinniśmy używać JSR-305. Ale JSR-305 nie wydaje się obejmować wszystkiego, co (teraz przestarzałe) obejmuje adnotacje FindBugs.

Thejavadoc sugeruje kilka alternatyw:

@ParametersAreNonnullByDefault. To (oczywiście) dotyczy tylko parametrów, a nie pól członkowskich.@CheckReturnValue, po zastosowaniu do typu lub pakietu. Ponownie, nie dotyczy to pól członkowskich.@TypeQualifierDefault. Może to może zrobić to, co chcę, ale nie rozumiem, jak to działa i nie mogę znaleźć żadnej dokumentacji ani przykładów na temat jej użycia lub zamiaru, poza jakimś tajemniczym javadoc. Myślę, że pomoże mi to w tworzeniu własnych adnotacji, ale czy mogę być pewien, że wszystkie narzędzia (FindBugs, Eclipse itp.) Poprawnie zinterpretują tę nową adnotację (lub nawet w ogóle)?

Thejavadoc nie zawiera żadnych wskazówek, jak radzić sobie z jego deprecjacją.

Tak więc, używając obecnych wersji FindBugs i / lub JSR-305, jak powinienem wskazać, że wszystkie pola członkowskie w określonym pakiecie (lub nawet w pewnej klasie) mają być traktowane jako@Nonnull? Czy to możliwe?

questionAnswers(1)

yourAnswerToTheQuestion