我试图使用kotlin的数据类来显示来自服务器的数据。它几乎正常工作但有些情况下,每当我获取响应时,我不知道为什么它仍然给出空值,除非我为msg添加默认值(""
)。
data class ViewcardModel(
val msg: String = "", // here is default values
val cartcnt: String = "",
val order_total: Int = 0,
val status: Boolean = false
)
{
status = false // server response
}
您可能正在使用类似GSON的东西来实例化模型的实例。这些工具使用反射来创建实例,因此主构造函数的默认参数值永远不会生效(因为它永远不会被调用)。
您需要的是与此问题相关的内容:
Setting Default value to a variable when deserializing using gson
自定义反序列化器可能就是您最终的结果。
您应该将值传递给这样的数据类
val s= ViewcardModel(status=false)
println(s.toString())
val s1= ViewcardModel(msg="hello",status=false)
println(s1.toString())
产量
ViewcardModel(msg=, cartcnt=, order_total=0, status=false)
ViewcardModel(msg=hello, cartcnt=, order_total=0, status=false)