Ответ
Data class в Kotlin — это специальный класс, основное назначение которого — хранение данных. Компилятор автоматически генерирует для него стандартные методы на основе свойств, объявленных в первичном конструкторе.
Автоматически генерируемые функции:
equals()/hashCode()— для сравнения объектов по значению.toString()— в формате"ИмяКласса(prop1=value1, prop2=value2)".copy()— создает копию объекта с возможностью изменения части свойств.- Функции-компоненты (
component1(),component2()...) — для поддержки деструктуризации.
Пример и использование:
data class User(val name: String, val age: Int)
fun main() {
val user1 = User("Alice", 30)
val user2 = User("Alice", 30)
println(user1) // User(name=Alice, age=30)
println(user1 == user2) // true (сравнение по значению)
val user3 = user1.copy(age = 31) // Копия с измененным возрастом
val (name, age) = user1 // Деструктуризация
}
Ограничения:
- Не может быть
abstract,open,sealedилиinner. - Должен иметь как минимум один параметр в первичном конструкторе.
- Все параметры первичного конструктора должны быть отмечены как
valилиvar.