如果我有一个开放类并从中继承数据类,Kotlin-moshi codegen 会跳过默认值。这是预期的行为吗?如何让 moshi-kotlin 解析所有值,包括父类(super class)中的默认值?
@JsonClass(generateAdapter = true)
data class B(val bar: String) : A(foo = "foo")
@JsonClass(generateAdapter = true)
open class A(val foo: String)
val b = B("bar")
adapter.toJson(b)
打印 {"bar":"bar"}
没有 channel 字段。
最佳答案
使您的父类(super class)属性可变可以解决您的问题。
@JsonClass(generateAdapter = true)
data class B(val bar: String) : A(foo = "foo")
@JsonClass(generateAdapter = true)
open class A(var foo: String)
输出{"bar":"bar","foo":"foo"}
关于android - 带有默认值的 Kotlin-moshi 代码生成继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55629040/