如何在 Kotlin Android 中为 data class 创建空构造函数?
大家好!我是 Kotlin 和 Android 开发的新手,遇到了一个关于 data class 的问题。我想用 data class 作为数据模型,但我需要这个类有一个空构造函数(无参数)——例如,用于 Retrofit 中的 JSON 反序列化或与 Room 一起使用。
问题是,当我写:
```kotlin
data class User(val id: Int, val name: String)
```
Kotlin 会自动生成仅包含这些参数的构造函数。如果我尝试创建一个空构造函数:
```kotlin
data class User(val id: Int, val name: String) {
constructor() : this() // 错误!
}
```
编译器会报错:“There's a cycle in the delegation calls chain”。我知道 data class 要求所有属性都必须初始化,但该怎么办呢?
我需要能够创建一个不带参数的 User() 对象,然后通过 setter 或赋值来填充字段。我看到在 Java 中只需写一个空构造函数,但在 Kotlin 中……