0
votes

Pourquoi ne puis-je pas utiliser typé de la façon dont j'ai besoin?

J'essaie de résoudre un problème que j'ai lors de la désérialisation d'un hashmap code>. Essayer de trouver une réponse, j'ai trouvé ces questions:


0 commentaires

3 Réponses :


7
votes

Vous instaniez un Typeoken code> via la création d'une sous-classe, qui est généralement anonyme: xxx pré>

notez le {} code> dans ma réponse. La raison de cela est expliquée dans le Javadoc: P>

/**
 * Represents a generic type {@code T}. Java doesn't yet provide a way to
 * represent generic types, so this class does. Forces clients to create a
 * subclass of this class which enables retrieval the type information even at
 * runtime.
 *
 * <p>For example, to create a type literal for {@code List<String>}, you can
 * create an empty anonymous inner class:
 *
 * <p>
 * {@code TypeToken<List<String>> list = new TypeToken<List<String>>() {};}
 *
 * <p>This syntax cannot be used to create type literals that have wildcard
 * parameters, such as {@code Class<?>} or {@code List<? extends CharSequence>}.
 *
 * @author Bob Lee
 * @author Sven Mawson
 * @author Jesse Wilson
 */


2 commentaires

... Oups, j'ai oublié d'appliquer le () {}. gettype () partie de l'exemple que j'ai vu dans les questions que j'ai liées ... je pourrais ajouter que je ne m'attendais pas à ce que {} suffirait à faire disparaître l'erreur. Merci


... Je l'ai testé en ce moment. Maintenant, il désérialise correctement. Merci beaucoup.



1
votes

Je ne pense pas que vous ayez utilisé correctement la typée, je faisais; xxx

où vous passez le type, pas le jeton réel.


1 commentaires

Vous avez raison. La réponse acceptée pointa la même chose. Merci.



2
votes

Si vous utilisez Kotlin, n'oubliez pas d'utiliser objet: xxx


0 commentaires