12

このパッケージのクラスの目的は何ですか?

アプリで Base64 エンコーディングを使用したいと考えています。Eclipse で入力していると、「com.google.appengine.repackaged.com.google.common.util.Base64」というクラスをインポートするかどうかを尋ねられます。

このクラスの機能に関するドキュメントが見つかりません。Javadoc がないか、Google App Engine のマニュアルに言及されていません (私が見ることができます)。これは、私がアクセスできない「隠し」API のようなものですか?

4

1 に答える 1

12

これは、私がアクセスできない「隠し」API のようなものですか?

はい。

Java クラスを再パッケージ化する目的は、別のバージョンのライブラリ (アプリケーション開発者が jar ファイルとしてプロジェクトに追加するもの) と競合する可能性のあるライブラリのプライベート コピーを作成することです。

これは、JAR 地獄に対する考えられる答えの 1 つです。

JDK でさえ、このメカニズムを利用しています。たとえば、com.sun.org.apache.xerces は、Sun が含めることを選択した (再パッケージ化された) Apache プロジェクトによって開発された XML 解析ライブラリです。

これらのクラスを直接呼び出さないでください。(できますし、おそらく問題なく動作しますが、公式の API の一部ではないため、次のバージョンで消える可能性があります)。

于 2009-08-04T09:32:13.723 に答える