2009-08-04 7 views
11

Quel est l'objectif des classes de ce package? Je veux utiliser l'encodage Base64 dans mon application. Comme je tape dans Eclipse, je suis invité si je veux importer une classe appelée "com.google.appengine.repackaged.com.google.common.util.Base64"Package "reconditionné" de Google App Engine

Je ne trouve aucune documentation à propos de ce que fait cette classe. Pas de javadoc, ou aucune mention dans le manuel de Google App Engine (que je peux voir). Est-ce une sorte d'API "cachée" à laquelle je ne suis pas censé avoir accès?

+0

Il me semble qu'il n'y a pas de bon codage Base64 dans les bibliothèques GAE/J standard (je trouve cela un peu étrange). Je suppose que les meilleures options sont apache.commons.codec ou goyave. – Tom

Répondre

12

Est-ce une sorte d'API "cachée" à laquelle je ne suis pas censé avoir accès?

Oui. Le but du reconditionnement des classes Java est d'avoir une copie privée d'une bibliothèque qui pourrait sinon entrer en conflit avec une autre version de cette bibliothèque (que le développeur de l'application ajoute à son projet en tant que fichier jar).

C'est une réponse possible à JAR-enfer.

Même le JDK utilise ce mécanisme, par ex. avec com.sun.org.apache.xerces qui est une bibliothèque d'analyse XML développée par le projet Apache que Sun a choisi d'inclure (reconditionné).

N'appelez pas directement ces classes. (Vous pourriez, et ils fonctionneraient probablement bien, mais comme ils ne font pas partie de l'API officielle, ils pourraient disparaître dans la prochaine version).

+1

Vous pouvez masquer ces packages pour apparaître dans Eclipse auto complete en faisant: http://stackoverflow.com/questions/5538714/how-to-hide-some-eclipse-autocomplete-results –