Sobes.tech
Назад к вопросам
Junior — Middle
63

Какие особенности и ограничения существуют у классов данных в Kotlin?

Компании, где спрашивали
amoCRMamoCRM

Ответ от нейросети

sobes.tech AI

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

Особенности и ограничения:

  • Класс должен иметь хотя бы один параметр в конструкторе.
  • Все параметры конструктора, объявленные в primary constructor, автоматически становятся свойствами.
  • Класс не может быть абстрактным, открытым, внутренним или наследоваться от других классов (но может реализовывать интерфейсы).
  • Компилятор генерирует методы только для свойств, объявленных в конструкторе, а не для дополнительных свойств.
  • Можно переопределять сгенерированные методы, если нужно изменить поведение.

Пример:

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

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // создаст новый объект с изменённым возрастом
println(user1) // User(name=Alice, age=30)