У меня есть общий класс class MyClass<T> : MyInterface<T>
, и я хочу десериализовать json до общего типа T. Я пробовал использовать библиотеки Jackson и kotlinx.serialization для десериализации json, но получаю следующую ошибку
cannot use T as reified type parameter. Use class instead
.
Я понимаю, почему это происходит, потому что и функция десериализации Джексона и kotlinx ожидают reified T, но в моем классе нет способа узнать тип T во время компиляции. Правильно ли я понимаю эту ошибку? Есть ли способ исправить эту ошибку?
Мой фрагмент кода
class MyClass<T> : MyInterface<T>{
.... <some code> ...
fun readFromJson(json: String){
val obj = jacksonObjectMapper().readValue<T>(json)
// same error if I use kotlinx Json.decodeFromString<T>(json)
...
}
.... <some code> ...
}