Désérialiser une liste
Dans le but de transférer des objets de liste à l'aide de Google Gson, les difficultés de désérialisation des types génériques sont apparues. Lors de la tentative d'une solution inspirée de la réponse de BalusC, un message d'erreur indiquant la nécessité d'implémentations de méthodes est apparu.
Cependant, une approche plus efficace existe, utilisant la classe TypeToken comme suit :
Type listType = new TypeToken<ArrayList<YourClass>>(){}.getType(); List<YourClass> yourClassList = new Gson().fromJson(jsonArray, listType);
La classe TypeToken capture un type au moment de la compilation dans un objet java.lang.reflect.Type, contrairement à un objet Class qui représente uniquement un type brut. Cela permet la représentation de n'importe quel type dans le langage Java, y compris les types génériques.
La classe TypeToken est construite de manière anonyme, car sa construction directe n'est pas autorisée. Ceci est nécessaire pour capturer les informations de type au sein de la sous-classe anonyme.
Il est important de noter que TypeToken ne peut capturer que les types entièrement connus au moment de la compilation.
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!