【发布时间】:2018-03-07 17:59:54
【问题描述】:
我有一个 Retrofit 的默认响应类
open class DefaultResponseImpl : DefaultResponse {
override val error: List<RestError>? get() = meta?.listErrors
@Expose
var meta: Meta? = null
}
而且这个 Meta 可以有一些额外的字段,所以我想用一些像这样的额外字段覆盖它
class SomeResponse : DefaultResponseImpl() {
@SerializedName("meta")
@Expose
val metaLocal: MetaInner? = null
inner class MetaInner : Meta() {
@SerializedName("extra_field")
@Expose
val field: Long? = null
}
}
但我收到错误java.lang.IllegalArgumentException: Unable to create converter for class com.responses.SomeResponse
怎么了? MetaInner 是 Meta 的子类型,我不会用另一种类型覆盖旧的元字段(这会在 IDE 中产生错误)。我只是添加了另一个必须从同一个 SerializedName 解析的字段
如何在 Kotlin 中实现这一点?
【问题讨论】:
标签: android kotlin gson retrofit2