Maison > Java > javaDidacticiel > Comment utiliser Gson TypeToken avec les types d'éléments Dynamic ArrayList au moment de l'exécution ?

Comment utiliser Gson TypeToken avec les types d'éléments Dynamic ArrayList au moment de l'exécution ?

Patricia Arquette
Libérer: 2024-12-05 17:16:11
original
354 Les gens l'ont consulté

How to Use Gson TypeToken with Dynamic ArrayList Item Types at Runtime?

Gson TypeToken avec type d'élément Dynamic ArrayList au moment de l'exécution

Lorsque vous travaillez avec JSON, il est courant de convertir les données JSON en objets typés à l'aide de Gson. Cependant, vous pouvez rencontrer un scénario dans lequel le type d'élément ArrayList que vous devez analyser est déterminé dynamiquement au moment de l'exécution à l'aide de la réflexion. Dans de tels cas, l'approche TypeToken traditionnelle peut s'avérer insuffisante.

Par exemple, considérons ce code :

Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);
Copier après la connexion

Ce code convertit une chaîne JSON en une liste d'objets myClass. Mais que se passe-t-il si le type d'élément de l'ArrayList doit être déterminé dynamiquement ?

Pour y parvenir, vous pouvez tirer parti d'une nouvelle fonctionnalité introduite dans la version 2.8.0 de Gson : TypeToken.getParameterized. Cette méthode vous permet de créer un TypeToken avec un type paramétré spécifié.

Voici comment vous pouvez l'utiliser :

private <T> Type setModelAndGetCorrespondingList2(Class<T> type) {
    Type typeOfObjectsListNew = TypeToken.getParameterized(ArrayList.class, type).getType();
    return typeOfObjectsListNew;
}
Copier après la connexion

En passant la classe ArrayList et le type de classe de type d'élément dynamique comme arguments à TypeToken.getParameterized, vous créez un TypeToken qui représente un ArrayList avec le type d'élément souhaité. Ce TypeToken peut ensuite être utilisé comme paramètre pour Gson.fromJson pour analyser correctement les données JSON dans le type de liste souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal