Выбор ответа Junior Классы, data и sealed спрашивают часто обновлено

Что генерирует data class

Вопрос

Какие методы компилятор генерирует для data class?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: equals, hashCode, toString, copy и componentN. Для data class генерируются equals, hashCode, toString, copy и функции component1..N для деструктуризации, причём только по свойствам первичного конструктора.

Варианты ответа

  1. Только toString, остальное пишется вручную
  2. equals, hashCode и сеттеры для всех полей
  3. equals, hashCode, toString, clone и serialize
  4. equals, hashCode, toString, copy и componentNправильный ответ

Разбор

Для data class генерируются equals, hashCode, toString, copy и функции component1..N для деструктуризации, причём только по свойствам первичного конструктора. Сеттеры появляются только у var, это не особенность data. clone и сериализацию компилятор не создаёт: для этого есть @Serializable из kotlinx.serialization.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.