Что такое метод copy у data class в Kotlin

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

Ответ

Метод copy() в Kotlin автоматически генерируется для data class и позволяет создавать копию объекта с возможностью изменения отдельных свойств. Это полезно для иммутабельных объектов.

Пример:

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

val user1 = User("Alex", 30)
val user2 = user1.copy(age = 31) // Создаст копию с изменённым age

Особенности:

  • Не изменяет оригинальный объект
  • Можно изменить любое количество полей
  • Поля, которые не указаны, сохраняют значения оригинала
  • Работает только с val свойствами (изменение var свойств в копии не отразится на оригинале)