PolymorphicSerializer — класс библиотеки Kotlinx.serialization, который обеспечивает поддержку полиморфной сериализации для интерфейсов и абстрактных классов. sandwwraith.github.io
Назначение PolymorphicSerializer — работа с иерархиями классов, где нужно сериализовать разные типы объектов, относящихся к одному базовому классу. habr.com
Некоторые особенности использования PolymorphicSerializer:
- По умолчанию полиморфная сериализация включена для интерфейсов и абстрактных классов, которые являются сериализуемыми. sandwwraith.github.io
- Чтобы явно включить эту функцию для других типов, используют аннотацию @SerializableWith(PolymorphicSerializer::class) или аннотацию Polymorphic для свойства. sandwwraith.github.io
- Чтобы избежать ошибок безопасности и потенциальных нагрузок, все сериализуемые реализации любого полиморфного типа должны быть заранее зарегистрированы в области базового полиморфного типа. sandwwraith.github.io