android - 带有默认值的 Kotlin-moshi 代码生成继承
问题描述
如果我有一个开放类并从中继承数据类,Kotlin-moshi codegen 会跳过默认值。这是预期的行为吗?如何让 moshi-kotlin 解析所有值,包括超类的默认值?
@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"}
没有通道字段。
解决方案
使您的超类属性可变可以解决您的问题。
@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"}
推荐阅读
- javascript - ReactJs - 将函数作为道具传递。警告:无效的道具
- python - 在 Pandas 中连续对每个链接发出 HTTP 请求
- typescript - 通过 npm 与使用本机包(通过 apt)为 Ubuntu 安装 typescript
- json - 无法正确获取 JSON 数据
- kotlin - 如何从gcp中的spring cloud函数发回自定义http响应代码?
- c# - Asp.Net Core 3.1 多个依赖的自定义配置提供程序
- react-native - 我没有使用 React Native SafeAreaView 但似乎我一直在使用。我怎样才能做到这一点?
- ios - 无法从 Apple HealthKit 访问 Active Energy 的汇总日值
- discord.py - “except”函数不适用于 discord.py
- c++ - boost::extension.hpp 的原因没有为无序容器和其他一些容器定义 hash_value()