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!