Что такое data object в Kotlin

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

Ответ

Data class в Kotlin — это класс, предназначенный исключительно для хранения данных. Автоматически генерирует полезные методы: equals(), hashCode(), toString(), copy() и componentN() функции (для деструктуризации).

Пример:

data class User(val name: String, val age: Int)

Ключевые особенности:

  1. Параметры в первичном конструкторе должны быть объявлены как val/var
  2. Не может быть abstract, open, sealed или inner
  3. Можно наследоваться только от других классов (не от интерфейсов)
  4. Автоматически реализует принципы value-объектов (сравнение по содержимому)

Оптимально использовать для DTO, моделей ответа API, сущностей БД и других случаев, где важна структура данных, а не поведение.