Maison > Java > javaDidacticiel > Comment puis-je utiliser le TypeToken de Gson avec les types d'éléments Dynamic ArrayList ?

Comment puis-je utiliser le TypeToken de Gson avec les types d'éléments Dynamic ArrayList ?

Patricia Arquette
Libérer: 2024-12-04 05:47:09
original
543 Les gens l'ont consulté

How Can I Use Gson's TypeToken with Dynamic ArrayList Item Types?

Surmonter les limitations de Gson TypeToken avec les types d'éléments Dynamic ArrayList

TypeToken de Gson est un outil pratique pour travailler avec des types spécifiques de données JSON. Cependant, il est confronté à des limites lorsqu'il s'agit de ArrayLists dont les types d'éléments sont attribués dynamiquement au moment de l'exécution. Cet article examine une solution de contournement à ce défi, permettant la création d'ArrayLists avec différents types d'éléments par réflexion.

Initialement, des tentatives ont été faites pour y parvenir en utilisant une implémentation TypeToken personnalisée, mais cela s'est avéré infructueux, à l'exception "Java.sql.SQLException : Échec de la conversion en représentation interne" est apparu lors de l'analyse JSON.

La solution réside dans une version ultérieure de Gson, où TypeToken fournit la méthode #getParameterized. Cette méthode permet la création de TypeTokens avec des arguments de type personnalisés. Dans ce scénario, l'objectif est de créer un TypeToken représentant une ArrayList avec un type d'élément spécifique déterminé dynamiquement, « myClass ». L'extrait de code mis à jour prend la forme suivante :

TypeToken.getParameterized(ArrayList.class, myClass).getType()
Copier après la connexion

Cette nouvelle approche génère efficacement un TypeToken qui correspond à la structure dynamique ArrayList souhaitée, résolvant les limitations précédentes et permettant la conversion transparente des données JSON en une ArrayList avec un type d'élément attribué dynamiquement.

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