Sobes.tech
Junior — Middle
77

Можешь привести пример использования Sealed Class для моделирования различных состояний объекта?

Компании, где спрашивали
БрайтСофт

Ответ от нейросети

sobes.tech AI

Sealed Class в Kotlin позволяет ограничить иерархию наследования, определяя фиксированный набор подклассов. Это удобно для моделирования состояний объекта, когда известно конечное число вариантов.

Пример моделирования состояний загрузки данных:

sealed class LoadState {
    object Loading : LoadState()
    data class Success(val data: List<String>) : LoadState()
    data class Error(val errorMessage: String) : LoadState()
}

fun handleState(state: LoadState) {
    when(state) {
        is LoadState.Loading -> println("Загрузка...")
        is LoadState.Success -> println("Данные получены: ${state.data}")
        is LoadState.Error -> println("Ошибка: ${state.errorMessage}")
    }
}

Такой подход позволяет безопасно обрабатывать все возможные состояния, и компилятор проверит, что все варианты учтены.