[英]rt.jar com.sun.istack.internal packages
jre附带了许多rt.jar中的库,其中一个是com.sun.istack.internal *。 我需要com.sun.istack.internal.Nullable(
我发现谷歌在其CacheBuilder中使用它
)的文档
,我
首先想到的是去docs.oracle.com找到它的文档,在那里我一无所获。 接下来转到源自jdk的源文件夹,我在所述文件夹中找不到com名称实体。 接下来我看一下jre7的发布,看看所有的包和类,发现那里没有提到Nullable。 虽然SO有一个提到它 ,但没有什么具体的。 我仍然感到困惑,如果需要,在哪里获得它的文档和src。 我甚至在oracle看过遗留的sun api文档,但没有提到它。 oracle在哪里记录有关移植包的政策以及它们是标准的还是非标准的。他们必须在某处记录它只是因为我花了太多时间去那里。
请指点我。
编辑:实际上javax.annotation.Nullable正在谷歌CacheBuilder中使用,而不是com.sun.istack.internal.Nullable。 对于可能面临此问题的人:javax.annotation.Nullable现在不是Java SE的一部分,它正在jsr305 jar中移植。 因此,如果您计划使用CacheBuilder或只是通过其代码,请在类路径中添加jsr305 jar,否则eclipse会混淆并指向com.sun.istack.intenal.Nullable,只要您将光标悬停在Nullable上。
Guava不使用com.sun.istack.internal.Nullable
。 官方Java SE javadoc中未记录的所有内容都是内部代码,不应在应用程序中使用。
您可能正在寻找javax.annotation.Nullable
,它是JSR305的一部分。
这是源代码的链接:
(此链接将来可能会中断,但您应该可以使用Google搜索找到相应的内容。)
您无法在标准JDK / JRE分发中找到源代码或javadoc的原因是这是一个INTERNAL类。 有一个长期的Oracle / Sun策略阻止开发人员编写依赖于Java内部类的代码。
FWIW - 这只是一个注释,其含义几乎就是类名所暗示的含义。
更新 - 显然,这种混淆的真正原因是你没有在你的构建路径中包含JSR305 jar。 它是CacheBuilder
的依赖CacheBuilder
。 然后,Eclipse类名完成正在尽力......但失败了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.