com.sun.istack.internal.Nullable Annotation and Guice

时间:2013-11-14 04:23:30

标签: java null guice nullable

当Guice说它识别出任何@Nullable注释时(http://code.google.com/p/google-guice/wiki/UseNullable)这是否意味着我可以成功使用Java 7 Runtime提供的com.sun.istack.internal.Nullable?

包名是com.sun.istack.internal的事实让我相信我可能不应该使用它,但使用起来非常方便......

2 个答案:

答案 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.Nullablejavax.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;
}