Android房间中的日期类型转换器

时间:2019-10-11 13:08:02

标签: android android-room

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房间,并陷入了这一部分。谁能解释这些功能?它们如何工作?

2 个答案:

答案 0 :(得分:3)

在房间中,当您拥有一些不是基本变量的变量时,例如Date之类的对象,或者不是int或long的任何对象,...,您必须创建一个类型转换器。 类型转换器的任务是将您的对象转换为原始类型,以提供空间在Sqlite中存储对象,并在您想要读取数据时将存储的原始类型转换为第一类类型。

例如,当您的数据是“日期”时,如果Room要保存它,转换器会将其转换为long(时间戳是一个长数字),而当您想从长时间戳中创建日期时。

答案 1 :(得分:0)

Room提供在原始类型和装箱类型之间进行转换的功能,但不允许在实体之间进行对象引用。

请参考此链接Use type converters