android - 带有默认值的 Kotlin-moshi 代码生成继承

标签 android kotlin moshi

如果我有一个开放类并从中继承数据类,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/

相关文章:

java - 实现 searchview - gridview 过滤器

android - 如何统计 Kotlin Android 中的字数?

android - 当 child 高度不同时,RecyclerView 在向上滚动时会抖动

kotlin - Moshi Retrofit2 Kotlin 类未找到异常

android - 如果为 2D 游戏制作的图形集看起来如何?

android - createWindowSurface 失败 : EGL_BAD_MATCH?

android - 使用 CursorLoader 从 ContentProvider 加载数据时出错

spring-boot - 如何模拟测试 Kotlin Spring boot 2 应用程序

android - 如何使用 Moshi 序列化 SparseArray

android - 如何使用 Moshi 解析对对象模型的改造 json 响应