Ответ
Интерфейс Converter в Android (часть библиотеки Room) преобразует типы данных между форматами, которые Room не поддерживает напрямую, и типами, которые можно хранить в БД. Например, для сохранения Date в SQLite (который хранит только примитивы) или сериализации объектов в JSON.
@TypeConverter
fun fromTimestamp(value: Long?): Date? {
return value?.let { Date(it) }
}
@TypeConverter
fun dateToTimestamp(date: Date?): Long? {
return date?.time
}
Ключевые моменты:
- Аннотация
@TypeConverterпомечает методы-конвертеры - Конвертеры должны быть парными (туда-обратно)
- Room автоматически использует их при маппинге данных