Я пытаюсь написать конвертер типов для класса List, используя библиотеку постоянства помещения, а для сериализации я использую библиотеку Kotlinx.Serialization.
Я создал абстрактный класс для Collection Converter.
abstract class BaseCollectionConverter<T> {
abstract val serializer: KSerializer<T>
@TypeConverter
fun toStringCollection(json: String): T {
return Json.parse(serializer, json)
}
@TypeConverter
fun toCollectionString(list: T): String {
return Json.stringify(serializer, list)
}
}
А вот и реализация абстрактного класса.
class QuestionCollectionConverter : BaseCollectionConverter<List<Survey.Question>>() {
override val serializer: KSerializer<List<Survey.Question>>
get() = Survey.Question.serializer().list
}
Вопрос class - это просто класс данных с аннотацией @ Serializable .Теперь, когда я пытаюсь построить приложение, компилятор выдает следующую ошибку:
error: incompatible types: List<CAP#1> cannot be converted to List<Question>
where CAP#1 is a fresh type-variable:
CAP#1 extends Question from capture of ? extends Question
Есть ли способ решить эту проблему?