В чем разница между object и data object

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

Ответ

object используется для создания синглтона — объекта с единственным экземпляром. Он инициализируется лениво при первом обращении.

object Singleton {
    val name = "Singleton"
}

data class предназначен для хранения данных и автоматически генерирует equals(), hashCode(), toString(), copy() и componentN() функции.

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

Различия:

  • object — синглтон, data class — обычный класс с данными.
  • data class требует создания экземпляров (val user = User(...)), object уже является экземпляром.
  • data class предоставляет полезные методы для работы с данными.