Особенности Data Class в Kotlin:
equals(), hashCode(), toString(), copy(), и componentN() функций.val или var.Пример:
kotlin
Различия в сгенерированных функциях:
| Функция | Обычный класс | Data Class |
|---|---|---|
equals() | Сравнение ссылок | Сравнение данных по полям |
hashCode() | Зависит от реализации | Зависит от данных по полям |
toString() | Имя класса и хэш-код | Имя класса и значения полей |
copy() | Нет (нужна ручная реализация) | Есть (позволяет легко создавать копии) |
componentN() | Нет | Есть (позволяет деструктурировать объект) |
Использование componentN():
kotlin