首页 > 解决方案 > 为什么我的数据类给出空值,除非我对其应用默认值?

问题描述

我正在尝试使用 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
    }
    

标签: androidkotlinstack-overflowkotlin-extensiondata-class

解决方案


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

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

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

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


推荐阅读