【问题标题】:How to initialize default values for GeoPoint in a data class如何在数据类中初始化 GeoPoint 的默认值
【发布时间】:2019-08-19 20:00:12
【问题描述】:

我正在尝试将文档从 Firestore 转换为对象,但是当我创建我的数据类时,我不知道如何使用默认值初始化 GeoPoint,因为它需要为空构造函数声明

data class MapObj(val geopoint:Geopoint) //--> how to initialize it to get an empty constructor

问题在于这一行

val obj = snapshot.toObject(MapObj::class.java)

谢谢

【问题讨论】:

    标签: android firebase kotlin google-cloud-firestore


    【解决方案1】:

    问题在于 Firestore SDK 没有为 MapObj 找到默认的、没有参数的构造函数。如果 Kotlin 数据类的所有属性都用 val 声明,则它们没有一个。对于声明为 val 的属性,Kotlin 要求在构造函数中指定它们的值,因为它们之后不可能更改。

    如果您必须从 Firestore 获取数据类,则必须将其所有属性设为可选 var 并使用默认值,以便 Kotlin 为其生成无参数构造函数。

    data class MapObj(var geopoint: Geopoint? = null)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      • 2014-12-29
      • 2012-01-16
      • 1970-01-01
      相关资源
      最近更新 更多