我正在尝试使用 kotlinx @Serializable
,但我遇到了这个问题:
我有以下课程:
@Serializable
sealed class GrandParent
第二个:
@Serializable
sealed class Parent() : GrandParent() {
abstract val id: String
}
第三个
@Serializable
data class Child(
override val id: String, ....
): Parent()
我需要祖父母,因为我在另一个类中将它用作泛型类型,而这恰好也有对 GrandParent 类的引用
@Serializable
data class MyContent(
override val id: String,
....
val data: GrandParent, <- so it has a self reference to hold nested levels
...): Parent()
每次我尝试运行它时都会出现错误...
Class 'MyContent' is not registered for polymorphic serialization in the scope of 'GrandParent'.
Mark the base class as 'sealed' or register the serializer explicitly.
我使用 ktor 作为包装器,kotlin 1.5.10。我是根据https://github.com/Kotlin/kotlinx.serialization/blob/master/docs/polymorphism.md#registered-subclasses做的
有任何想法吗?