尝试 kotlin 1.4.32 / 序列化 1.1.0 (和 kotlin 1.5.0 / 序列化 1.2.0) 我找不到序列化以下类层次结构的方法
interface Range<T:Comparable<T>>
@Serializable @SerialName("range")
class SimpleRange<T:Comparable<T>>: Range<T>
@Serializable @SerialName("multirange")
class MultiRange<T:Comparable<T>>: Range<T>
Run Code Online (Sandbox Code Playgroud)
我可以使用 SerializersModule序列化 a SimpleRange<Double>(声明为 a ),包括Range<Double>
polymorphic(Range::class) {
subclass(SimpleRange.serializer(Double.serializer()))
}
Run Code Online (Sandbox Code Playgroud)
但我找不到一种方法来配置模块,使其可以序列化/反序列化一个SingleRange<Double>或一个SingleRange<Int>或一个MultiRange<String>或我可以在 SerializersModule 中声明的任何组合。例如,如果我添加subclass(SimpleRange.serializer(Int.serializer())到前一个,我会得到一个SerializerAlreadyRegisteredException
kotlin ×1