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
Patricia Arquetteoriginal
2024-12-04 05:47:09525parcourir

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()

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!

Déclaration:
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