edu.umd.cs.findbugs.annotations 已弃用?空注释应该使用什么?

xav*_*m02 5 java null annotations

我是 Java 新手,刚刚发现了 @Nullable 和其他此类注释,所以我尝试了它们。

我首先尝试了 Eclipse 中包含的字段,但它们不允许我将它们用于字段,这让我认为某些字段可能为空,而它们显然不能。

顺便说一句,我默认使用这个东西来使所有内容都@NonNull。

然后,我尝试了findbugs(edu.umd.cs.findbugs.annotations),但显然,整个事情都被弃用了(http://findbugs.sourceforge.net/api/edu/umd/cs/findbugs/annotations/package-摘要.html)。

我应该用什么?

Mar*_*ers 5

当某些内容被标记为 时@Deprecated,Javadoc 中通常会为已弃用的声明提供替代方案。

在这种情况下,HTML 格式的 Javadoc 会让您失望:它没有显示替代方案的完全限定类名,因此您会看到类似的内容

可空:已弃用。- 使用 Nullable 代替

这不是很有帮助。

那么让我们看看Nullable.java 的源代码

/**
 * The annotated element could be null under some circumstances.
 * 
 * ...
 * 
 * @deprecated - use {@link javax.annotation.Nullable} instead. 
 **/
Run Code Online (Sandbox Code Playgroud)

javax.annotation.Nullable啊哈:我们应该用它来代替。但这是一个更大的问题。我建议你看这里:Which @NotNull Java 注解应该使用?

  • 请注意,本应定义“javax.annotation.Nullable”的 JSR-305 已失效。 (4认同)