我的问题是对这个问题的跟进。
在过去的 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
?甚至可能吗?