我的问题是后续这一块 。
在FindBugs的过去的版本中,可以使用@DefaultAnnotation(Nonnull.class)
或@DefaultAnnotationForFields(Nonnull.class)
表明在一个包中的所有领域应被视为@Nonnull
。 在FindBugs的(2.0)的当前版本, @DefaultAnnotation
和@DefaultAnnotationForFields
已过时,我们都应该使用JSR-305来代替。 但JSR-305似乎并没有面面俱到的(现在已经过时)的FindBugs注释覆盖。
该javadoc的确实表明了一些替代品:
-
@ParametersAreNonnullByDefault
。 这个(显然)仅适用于参数,而不是成员字段。 -
@CheckReturnValue
,当应用于一种类型或封装。 同样,这并不适用于成员字段。 -
@TypeQualifierDefault
。 也许这可以做我想做的,但我不明白它是如何工作的,我无法找到关于它的用法或意图的任何文件或实例,除了一些神秘的javadoc。 我认为这将帮助我建立我自己的注释,但我可以肯定的是所有的工具(FindBugs的是,Eclipse等)将正确(甚至全部)解释这个新的诠释?
该javadoc中没有提供关于如何处理其弃用任何提示。
因此,使用FindBugs的和/或JSR-305的最新版本,我应该怎么表明,在一定的包中的所有成员字段(或者甚至在某一类)都应该被视为@Nonnull
? 它甚至有可能?