Back to questions
amoCRM
Junior — Middle
62
Какие особенности и ограничения существуют у классов данных в Kotlin?
Companies where asked
Answer from AI
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)