Avatar ·

Comment utiliser TypeToken avec les génériques dans Gson en Kotlin (résolution de l'erreur com.google.gson.internal.LinkedTreeMap)

Bonjour à tous ! Je me bats depuis plusieurs jours avec un problème de désérialisation JSON en Kotlin lors de l'utilisation de génériques. J'ai une fonction qui prend un type de classe et retourne un objet parsé. En Java, j'écrirais quelque chose comme `new TypeToken>(){}.getType()`, mais en Kotlin cela ne fonctionne pas à cause de l'effacement des génériques. Voici un exemple simplifié : ```kotlin data class User(val name: String, val age: Int) fun parseList(json: String, clazz: Class): List { val type = TypeToken.getParameterized(List::class.java, clazz).type return Gson().fromJson(json, type) } // Utilisation val json = """[{"name":"John","age":30}]""" val users = parseList(json, User::class.java) println(users[0].name) // Erreur : java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to User ``` J'ai essayé de nombreuses variantes : j'ai tenté de passer `TypeToken`, d'utiliser `reified`, mais j'obtiens toujours un `LinkedTreeMap` au lieu de mon type. Je comprends que c'est un