Как распарсить Generic?

Обычно, когда нужно распарсить json я указываю тип класса в который нужно его забиндить. Вот так

json = "здесь ответ от сервера"
val myClass = Gson().fromJson(json, MyClass::class.java)

Но как указать тип класса, если это дженерик?


Ответы (1 шт):

Автор решения: Circassian

Если я правильно понял, то примерно так

fun parseJson() {
    val json = "здесь ответ от сервера"
    val type = object : TypeToken<B<A>>() {}.type
    val b = Gson().fromJson<B<A>>(json, type)
    val n = b.a?.n
}

class A {
    val n: Int? = null
}

class B<T : Any> {
    val a: T? = null
}
→ Ссылка