Какие знаешь методы data class генерируемые компилятором

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

Ответ

Data class в Kotlin автоматически генерирует следующие методы:

  • equals() – сравнивает объекты по свойствам (не по ссылке).
  • hashCode() – генерирует хеш-код на основе свойств.
  • toString() – возвращает строку в формате "ClassName(prop1=value1, prop2=value2)".
  • copy() – создает копию объекта с возможностью изменения отдельных свойств.
  • componentN() – функции декомпозиции для деструктуризации (например, val (name, age) = user).

Пример:

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

fun main() {
    val user1 = User("Alice", 25)
    val user2 = user1.copy(age = 26)
    println(user1 == user2) // false
    println(user2) // User(name=Alice, age=26)
}

Эти методы помогают избежать boilerplate-кода.