Avatar ·

Como usar TypeToken com genéricos em Gson no Kotlin (solucionando o erro com.google.gson.internal.LinkedTreeMap)

Olá a todos! Estou há alguns dias enfrentando um problema com desserialização de JSON em Kotlin quando uso genéricos. Tenho uma função que recebe o tipo da classe e retorna um objeto parseado. Em Java, eu escreveria algo como `new TypeToken>(){}.getType()`, mas em Kotlin isso não funciona devido a erased generics. Aqui está um exemplo simplificado: ```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) } // Uso val json = """[{"name":"John","age":30}]""" val users = parseList(json, User::class.java) println(users[0].name) // Erro: java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to User ``` Tentei várias abordagens: tentei passar `TypeToken`, usar `reified`, mas ainda recebo `LinkedTreeMap` em vez do meu tipo. Entendo que isso é