web-dev-qa-db-fra.com

Qu'est-ce que Type & TypeToken?

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?

14
Android

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.

22
azizbekian