Тип конвертера даты в комнате Android - PullRequest
0 голосов
/ 11 октября 2019
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()
    }
}

Я изучаю комнату андроида и застрял в этой части. Кто-нибудь может объяснить об этих функциях? Как они работают?

Ответы [ 2 ]

3 голосов
/ 11 октября 2019

В комнате, когда у вас есть некоторые переменные, которые не являются примитивными, как объекты, такие как Date или любой другой объект, который не является int или long, ... вы должны создать конвертер типов. Задача конвертера типов - преобразовать ваш объект в тип примитива, чтобы помочь помещению для его хранения в Sqlite, и преобразовать сохраненный тип примитива в тип первого класса, когда вы хотите прочитать ваши данные.

например, когда ваши данные имеют тип Датакогда Room хочет сохранить его, конвертер преобразует его в длинное (временная метка - длинное число), а когда нужно прочитать, создает дату из длинной временной метки.

0 голосов
/ 11 октября 2019

Комната обеспечивает функциональность для преобразования между примитивным и коробочным типами, но не допускает ссылки на объекты между сущностями.

Пожалуйста, обратитесь по этой ссылке Используйте преобразователи типа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...