3

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

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

4

2 回答 2

5

正如网站上的示例所说,您必须使用Nullablefrom package 。javax.annotation

如果您查看网站上的评论,则有指向正确 jar 库的链接。

        <dependency>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
            <version>3.0.2</version>
        </dependency>

就我而言,我打算使用 IntelliJ 包中的 Nullable 注释。:)

于 2013-11-14T15:26:01.217 回答
3

如果您的类允许 null,您可以使用 @Nullable 注释字段或参数。Guice 可以识别任何 @Nullable 注释,例如edu.umd.cs.findbugs.annotations.Nullablejavax.annotation.Nullable。——来自Guice 网站

为了确认chrylis的上述预感,Guice 简单地测试了类的名称

// from core/src/com/google/inject/internal/Nullability.java
if ("Nullable".equals(type.getSimpleName())) {
  return true;
}
于 2013-11-14T18:54:39.993 回答