Какие плюсы и минусы data class

«Какие плюсы и минусы data class» — вопрос из категории Kotlin, который задают на 34% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Плюсы:

  • Автоматически генерирует equals(), hashCode(), toString(), copy()
  • Упрощает создание immutable моделей данных
  • Поддержка деструктуризации (val (name, age) = user)
  • Лаконичный синтаксис (data class User(val name: String, val age: Int))

Минусы:

  • Нельзя наследоваться от data class (final по умолчанию)
  • Иногда избыточность (toString() может быть слишком подробным)
  • Ограниченная кастомизация (например, сложно изменить логику equals())

Пример:

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

// Использование
val user = User("Alex", 25)
val (name, age) = user // деструктуризация