Google App Engineの「再パッケージ化された」パッケージ
-
22-07-2019 - |
質問
このパッケージのクラスの目的は何ですか?
アプリでBase64エンコーディングを使用したい。 Eclipseで入力しているときに、" com.google.appengine.repackaged.com.google.common.util.Base64"というクラスをインポートするかどうかを尋ねられます
このクラスの機能に関するドキュメントが見つかりません。 javadocがないか、Google App Engineマニュアルに記載されていません(表示されています)。これはある種の「隠された」ものですか?アクセスできないはずのAPI?
解決
これはある種の「隠された」ものですか?アクセスできないはずのAPI?
はい。
Javaクラスを再パッケージ化する目的は、ライブラリの別のバージョンと競合する可能性のあるライブラリのプライベートコピーを保持することです(アプリケーション開発者がjarファイルとしてプロジェクトに追加します)。
これはJAR-hellに対する可能な答えの1つです。
JDKでもこのメカニズムを利用しています。 com.sun.org.apache.xercesを使用します。com.sun.orgは、Sunが含める(再パッケージ化する)ことを選択したApacheプロジェクトによって開発されたXML解析ライブラリです。
これらのクラスを直接呼び出さないでください。 (可能性があり、おそらく大丈夫でしょうが、公式のAPIの一部ではないため、次のバージョンでは表示されなくなる可能性があります。)
所属していません StackOverflow