Что такое интерфейс Converter

«Что такое интерфейс Converter» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Интерфейс 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 автоматически использует их при маппинге данных