我有以下数据类:
data class TimesheetEntry(
val id: Int = 0,
val title: String = "",
val category: String = "",
var entryDate: LocalDate,
var startTime: LocalTime,
var endTime: LocalTime,
val imageBitmap: Bitmap? = null
)
我正在尝试从 Firestore 获取 timeSheetEntry 数据,但是每当我打开 Activity 查看条目时,应用程序都会崩溃。 当我检查 logcat 时,它显示以下错误:
java.lang.RuntimeException: Could not deserialize object. Class java.time.LocalDate does not define a no-argument constructor. If you are using ProGuard, make sure these constructors are not stripped (found in field 'entryDate')
我尝试为其分配系统日期,但这不起作用,我还尝试了硬编码日期和时间,但没有什么区别。
Kotlin 中的数据类必须至少有一个构造函数参数。这是必要的,因为数据类会从构造函数参数自动生成
equals
和 hashCode
方法。所以必须至少有一个。
您始终可以为参数提供默认值:这样您就可以创建一个对象,而无需提供任何参数,看起来就像使用了无参数构造函数。
您还可以将数据类设为常规类,这样就没有更多关于无参数构造函数的限制了。
对于有关如何从 Firestore 检索数据的另一个问题,我建议您提出一个更详细的新问题。