我有一个数据馈送,它返回一个列表,该列表可能是三种类型之一(说类型 A、B 和 C)。以上所有类型共享 2 个属性,其余属性特定于该类型。我尝试使用该模式。
abstract class Parent (val type: String, val id: String)
和
data class TypeA(override val type: String ... )
data class TypeB(override val type: String ... )
我正在使用 Retrofit 并尝试将列表反序列化为
List<? extends Parent>
在 Kotlin 中应该是
List<out Parent>
但是,GSON 在实例化抽象的父类时会引发反序列化错误。
java.lang.RuntimeException: Failed to invoke public com.XX.Parent() with no args
有什么想法可以在 Kotlin 中实现吗?