class CrimeTypeConverters {
@TypeConverter
fun fromDate(date: Date?): Long? {
return date?.time
}
@TypeConverter
fun toDate(millisSinceEpoch: Long?): Date? {
return millisSinceEpoch?.let {
Date(it)
}
}
@TypeConverter
fun toUUID(uuid: String?): UUID? {
return UUID.fromString(uuid)
}
@TypeConverter
fun fromUUID(uuid: UUID?): String? {
return uuid?.toString()
}
}
我正在学习Android房间,并陷入了这一部分。谁能解释这些功能?它们如何工作?
答案 0 :(得分:3)
在房间中,当您拥有一些不是基本变量的变量时,例如Date之类的对象,或者不是int或long的任何对象,...,您必须创建一个类型转换器。 类型转换器的任务是将您的对象转换为原始类型,以提供空间在Sqlite中存储对象,并在您想要读取数据时将存储的原始类型转换为第一类类型。
例如,当您的数据是“日期”时,如果Room要保存它,转换器会将其转换为long(时间戳是一个长数字),而当您想从长时间戳中创建日期时。
答案 1 :(得分:0)
Room提供在原始类型和装箱类型之间进行转换的功能,但不允许在实体之间进行对象引用。
请参考此链接Use type converters