Карточка Senior Классы, data и sealed обновлено

Зачем нужен data object

Вопрос

Зачем нужен data object и чем он лучше обычного object в sealed-иерархии?

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

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

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

Коротко

data object генерирует читаемый toString (Loading вместо Loading@1a2b3c) и equals/hashCode, которые корректны даже если синглтон каким-то образом создан второй раз (сериализация, рефлексия). Стабилен с Kotlin 1.9, рекомендуется для объектов-вариантов sealed-иерархий.

Ответ

data object генерирует читаемый toString (Loading вместо Loading@1a2b3c) и equals/hashCode, которые корректны даже если синглтон каким-то образом создан второй раз (сериализация, рефлексия). Стабилен с Kotlin 1.9, рекомендуется для объектов-вариантов sealed-иерархий.

Разбор

data object генерирует читаемый toString (Loading вместо Loading@1a2b3c) и equals/hashCode, которые корректны даже если синглтон каким-то образом создан второй раз (сериализация, рефлексия). Стабилен с Kotlin 1.9, рекомендуется для объектов-вариантов sealed-иерархий.

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

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