Junior — Middle
75
Можешь привести пример использования Sealed Class для моделирования различных состояний объекта?
Companies where asked
БрайтСофт
Answer from AI
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}")
}
}
Такой подход позволяет безопасно обрабатывать все возможные состояния, и компилятор проверит, что все варианты учтены.