Возврат пользовательского типа - PullRequest
0 голосов
/ 13 мая 2019

У меня есть доступ к библиотеке, но я не хочу разбирать код и поддерживать библиотеку, потому что я слишком новичок в Kotlin.

Код выглядит так:

data class Foo<out T: Baz>(val foos: ..., bars: ...)

Я могу вызвать методы из библиотеки, чтобы получить Foo, но мне нужно это Foo для реализации Serializable из java.io. Я спросил кого-то, как я могу это сделать, и они предложили мне перейти из класса данных. Это правильный курс действий, и если да, то как можно это сделать?

1 Ответ

0 голосов
/ 14 мая 2019

В Kotlin нельзя создать интерфейс, реализующий класс, который он не реализует (в отличие от Haskell и Go).

Больно, что ваши варианты следующие:

  • Создайте свой собственный класс, реализующий Serializable, который имеет все те же поля, что и базовый. Тогда вы даже можете создать конструктор в новом классе, который принимает базовый класс в качестве аргумента
  • Используйте другой способ сериализации, например kotlinx.serialization
...