J'ai la méthode suivante dans mon projet
public void execute(final int apiId, final ResponseHandler handler, final Type type)
et le type est déterminé à l'aide de TypeToken comme suit
final Type serviceErrorType = new TypeToken<>() {
}.getType();
Je suis passé par là link ici mais je ne comprenais pas complètement à propos de Type
et TypeToken
Quelqu'un peut-il partager un lien ou aider à comprendre ces deux concepts?
Du lien vous avez fourni:
Force les clients à créer une sous-classe de cette classe qui permet de récupérer les informations de type même à l'exécution.
Parlons d'exemple.
Supposons que vous vouliez analyser un JSON pour Java avec la bibliothèque Gson . Maintenant, vous devez dire spécifiquement à Gson que:
Je veux que ce JSON soit traduit en Liste des objets utilisateur
Comment diriez-vous cela à Gson? Si ce n'était que User
, vous pourriez dire User.class
. Mais il n'est pas possible de dire List<User>.class
new Gson().fromJson(json, new TypeToken<List<User>>(){}.getType())
Mais maintenant, vous pouvez spécifier précisément que Gson doit le convertir en List of Users
.
Devrait citer l'explication des documents:
Représente un type générique
T
. Java ne fournit pas encore de moyen de représenter les types génériques, donc cette classe le fait.
Jetez un oeil à cet article de blog pour plus de détails sur le sujet.