【发布时间】:2018-08-11 19:18:51
【问题描述】:
我有一个数据馈送返回一个列表,该列表可能是三种类型中的一种(说类型 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 中实现吗?
【问题讨论】:
-
我认为您遗漏了更多异常消息?
-
现在我为我的抽象类写了一个显式适配器,不确定它是否有效。
标签: android kotlin gson retrofit2 moshi