Источник: Nuances of Programming Курс SkillFactory Android-разработчик. Ваш прямой путь к созданию мобильных приложений на Android с нуля. Объекты данных — это новый функционал, представленный в Kotlin 1.7.20 и планируемый к выпуску в версии 1.9. Разберемся, для чего он нужен. Какую проблему призваны решить объекты данных? Ниже, в типичном примере иерархии запечатанных классов, используется sealed interface (мог быть и sealed class), которым определяются возможные состояния экрана профиля: data class для состояния успеха, а object для состояний ошибки и загрузки. sealed interface ProfileScreenState {
data class Success(val username: String): ProfileScreenState
object Error: ProfileScreenState
object Loading: ProfileScreenState
} А что если нужно занести в журнал или распечатать текущее состояние экрана для отладки либо отправки в службу аналитики? В строковом представлении класса данных ProfileScreenState.Success как раз содержатся имя класса и все его свойства. Но если в