我遇到了一些未知的错误。这打破了我关于Kotlin数据类和Api响应为空安全的假设。
比方说,我有一个数据类--比如Person
data class Person(val name: String) {
constructor() : this("")
}这将生成一个具有默认值(即非空)的对象人。早些时候,当我使用带有GsonConverterFactory.create()的默认改造客户机时(添加为转换器工厂)。在默认模式下,Gson不序列化空值。但是今天我发现这个字段被序列化为null。
我在ReflectiveTypeAdapterFactory https://github.com/google/gson/blob/master/gson/src/main/java/com/google/gson/internal/bind/ReflectiveTypeAdapterFactory.java#L206中也是如此
在这里,实例值具有非空字段,但是在读取每个字段(field.read(in, instance);)后,它将赋值为空值。我期望在序列化期间跳过空值,还是反序列化?
编辑:看起来它正在反序列化空值,而不是序列化空问题。参考资料:https://github.com/google/gson/issues/1148
如果有任何细节遗漏或造成混乱,请告诉我。
发布于 2020-02-01 14:18:42
您必须通过更改类型使name参数为空;
String至
String?https://stackoverflow.com/questions/59950397
复制相似问题