当Guice说它识别出任何@Nullable注释时(http://code.google.com/p/google-guice/wiki/UseNullable)这是否意味着我可以成功使用Java 7 Runtime提供的com.sun.istack.internal.Nullable?
包名是com.sun.istack.internal的事实让我相信我可能不应该使用它,但使用起来非常方便......
答案 0 :(得分:4)
您必须使用Nullable
包中的javax.annotation
,例如该网站上的示例。
如果您在网站上查看评论,则指向正确的jar库链接。
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>
在我的情况下,我即将使用IntelliJ包中的Nullable注释。 :)
答案 1 :(得分:2)
如果您的类允许null,则可以使用@Nullable注释字段或参数。 Guice会识别任何@Nullable注释,例如edu.umd.cs.findbugs.annotations.Nullable或javax.annotation.Nullable。 - 来自Guice site
要确认chrylis上面的预感,Guice只需tests the name of the class。
// from core/src/com/google/inject/internal/Nullability.java
if ("Nullable".equals(type.getSimpleName())) {
return true;
}