Java com.sun.istack.internal.Nullable注释和Guice

Java com.sun.istack.internal.Nullable注释和Guice,java,null,guice,nullable,Java,Null,Guice,Nullable,当Guice说它在这里识别任何@Nullable注释()时,这是否意味着我可以成功地使用Java 7运行时提供的com.sun.istack.internal.Nullable 包名为com.sun.istack.internal这一事实让我相信我可能不应该使用它,但使用它非常方便…您必须使用javax.annotation中的Nullable包,正如该站点的示例所示 如果您查看站点上的评论,就会看到指向适当jar库的链接 <dependency>

当Guice说它在这里识别任何@Nullable注释()时,这是否意味着我可以成功地使用Java 7运行时提供的com.sun.istack.internal.Nullable


包名为com.sun.istack.internal这一事实让我相信我可能不应该使用它,但使用它非常方便…

您必须使用
javax.annotation中的
Nullable
包,正如该站点的示例所示

如果您查看站点上的评论,就会看到指向适当jar库的链接

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

com.google.code.findbugs
jsr305
3.0.2
在我的例子中,我正要使用IntelliJ包中的可空注释。:)

如果类允许null,则可以使用@Nullable注释字段或参数。Guice识别任何@Nullable注释,如或-从

为了证实上面的直觉,Guice简单地说


我怀疑Guice在简单类名上匹配,所以可能是的,但仍然不匹配。除了SCTP类之外,您不应该使用任何以
com.sun
开头的内容。只需附加一个合适的JSR-305 jar即可。似乎JSR-308()是一个更好的选择,因为JSR-305是休眠的()。。。
// from core/src/com/google/inject/internal/Nullability.java
if ("Nullable".equals(type.getSimpleName())) {
  return true;
}