当 Guice 说它在此处识别任何 @Nullable 注释 ( http://code.google.com/p/google-guice/wiki/UseNullable ) 时,这是否意味着我可以使用 com.sun.istack.internal.Nullable 提供的Java 7 运行时成功了吗?
包名称是 com.sun.istack.internal 的事实让我相信我可能不应该使用它,但使用起来非常方便......
当 Guice 说它在此处识别任何 @Nullable 注释 ( http://code.google.com/p/google-guice/wiki/UseNullable ) 时,这是否意味着我可以使用 com.sun.istack.internal.Nullable 提供的Java 7 运行时成功了吗?
包名称是 com.sun.istack.internal 的事实让我相信我可能不应该使用它,但使用起来非常方便......
正如网站上的示例所说,您必须使用Nullable
from package 。javax.annotation
如果您查看网站上的评论,则有指向正确 jar 库的链接。
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>
就我而言,我打算使用 IntelliJ 包中的 Nullable 注释。:)
如果您的类允许 null,您可以使用 @Nullable 注释字段或参数。Guice 可以识别任何 @Nullable 注释,例如edu.umd.cs.findbugs.annotations.Nullable或javax.annotation.Nullable。——来自Guice 网站
为了确认chrylis的上述预感,Guice 简单地测试了类的名称。
// from core/src/com/google/inject/internal/Nullability.java
if ("Nullable".equals(type.getSimpleName())) {
return true;
}