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?