7

jre には rt.jar の多くのライブラリが付属しており、そのうちの 1 つが com.sun.istack.internal* です。com.sun.istack.internal.Nullable のドキュメントが必要でした (これは Google の CacheBuilder で使用されていることがわかりました)。 . 次に、jdk をソースとするソース フォルダーに移動しましたが、そのフォルダーに com 名エンティティが見つかりませんでした。次に、jre7 リリースを見て、すべてのパッケージとクラスを調べたところ、Nullable についての言及は見つかりませんでした。SOにはそれについての言及が1つありましたが、しかし具体的なものは何もありません。必要に応じてそのドキュメントとソースをどこで入手できるか、私はまだ困惑しています。私はオラクルで従来のsun apiのドキュメントを見ましたが、それについては何も言及されていませんでした。オラクルは、移植されたパッケージとそれらが標準であるか非標準であるかに関するポリシーをどこに文書化していますか.彼らはそれをどこかに文書化しているに違いありません.

そこを指してください。

編集: 実際には、com.sun.istack.internal.Nullable ではなく、javax.annotation.Nullable が google CacheBuilder で使用されています。また、この問題に直面する可能性のある人のために: javax.annotation.Nullable は現時点では Java SE の一部ではなく、jsr305 jar に移植されています。したがって、CacheBuilder を使用する予定がある場合、または単にそのコードを実行する場合は、クラス パスに jsr305 jar を追加してください。そうしないと、eclipse が混乱し、Nullable の上にカーソルを置くたびに com.sun.istack.intenal.Nullable を指すようになります。 .

4

2 に答える 2

12

グアバは使用しませんcom.sun.istack.internal.Nullable。公式の Java SE javadoc に記載されていないものはすべて内部コードであり、アプリケーションで使用しないでください。

おそらく、 JSR305javax.annotation.Nullableの一部である を探しているでしょう。

于 2012-05-20T13:48:06.580 に答える
5

ソースコードへのリンクは次のとおりです。

(このリンクは将来壊れる可能性がありますが、Google 検索を使用して同等のリンクを見つけることができるはずです。)

標準の JDK / JRE ディストリビューションでソース コードまたは Javadoc が見つからない理由は、これが内部クラスであるためです。Oracle / Sun には、開発者が Java 内部クラスに依存するコードを作成することを思いとどまらせるという長年にわたるポリシーがあります。

FWIW - これは単なる注釈であり、意味はほとんどクラス名が意味するものです。


更新- どうやら、この混乱の本当の原因は、ビルドパスに JSR305 jar を含めなかったことです。の依存関係ですCacheBuilder。Eclipse クラス名の補完は最善を尽くしていますが、失敗しています。

于 2012-05-20T13:47:12.390 に答える