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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

Классы данных (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)

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку