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

标签 java null annotations

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

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

顺便说一下,我用它来默认将所有内容都设为@NonNull。

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

我应该使用什么?

最佳答案

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

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

Nullable: Deprecated. -Use Nullable instead

这不是很有帮助。

那么让我们看看source for Nullable.java相反:

/**
 * The annotated element could be null under some circumstances.
 * 
 * ...
 * 
 * @deprecated - use {@link javax.annotation.Nullable} instead. 
 **/

啊哈:我们应该改用 javax.annotation.Nullable。但这是一个更大的问题。我建议你看这里:Which @NotNull Java annotation should I use?

关于java - edu.umd.cs.findbugs.annotations 已弃用?我应该为空注释使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11460413/

相关文章:

c# - 如何使泛型方法允许返回 null 并接受枚举?

java - 有没有办法在 Scala 中创建自定义注释并编写自定义注释处理器来验证注释?

java - java中的protobuf是线程安全的吗?

java - 在 openshift 中连接 mongodb 显示错误。

java - 如何设置复选框被选中和禁用

sql - 如何将空值插入sql server

java - 保存多对多时引用完整性约束违规 - Ebean、Play、Yaml、测试

c# - 对不需要实例的扩展方法进行空检查?

scala - 向val添加显式类型可防止将val用作注释中的常量

java - 注解是否适用于子类?