3

我正在尝试使用 kotlin 的数据类显示来自服务器的数据。它几乎可以正常工作,但是在某些情况下,每当我获取响应时,我不知道为什么它仍然给出空值,除非我""为 msg 添加默认值 ()。

  1. 这是我的数据类

    data class ViewcardModel(
            val msg: String = "",  // here is default values
            val cartcnt: String = "",
            val order_total: Int = 0,
            val status: Boolean = false          
    )
    
  2. 这是我从服务器的回复

    {
      status = false  // server response
    }
    
4

2 回答 2

0

您可能正在使用 GSON 之类的东西来实例化模型的实例。这些工具使用反射来创建实例,因此主构造函数的默认参数值永远不会生效(因为它从未被调用过)。

您需要的内容与此问题的内容相同:

使用 gson 反序列化时将默认值设置为变量

自定义反序列化器可能是您最终得到的。

于 2018-09-05T06:48:36.480 回答
0

您应该像这样将值传递给数据类

  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)
于 2018-09-05T07:01:53.563 回答