我将 Retrofit 和 AutoValue 与 GSON 扩展一起使用。一切正常,但是当服务器没有为其返回值时,我没有找到初始化属性的方法。我可以添加注释 @Nullable 以避免 NPE,但我希望能够避免空值并为 json 中未设置的属性设置默认值。
我知道如何在不使用 gson 扩展的情况下使用构建器来设置属性,但我不知道在使用扩展来设置默认值时如何使用这些构建器(或任何其他方法)。
我将 Retrofit 和 AutoValue 与 GSON 扩展一起使用。一切正常,但是当服务器没有为其返回值时,我没有找到初始化属性的方法。我可以添加注释 @Nullable 以避免 NPE,但我希望能够避免空值并为 json 中未设置的属性设置默认值。
我知道如何在不使用 gson 扩展的情况下使用构建器来设置属性,但我不知道在使用扩展来设置默认值时如何使用这些构建器(或任何其他方法)。
我认为你不能使用自动值来做到这一点,因为它仍然是一个悬而未决的问题
Reff:http:
//github.com/rharter/auto-value-gson/issues/47
但解决方法是将您自己的模型传递给 gson 进行解析,并在该模型中为您想要的任何变量设置默认值。因此,当您在 json 响应中获取值时,它将自动覆盖默认值,在其他情况下,模型中已经存在默认值。