Back to questions
Junior — Middle
66
Применяли ли вы sealed class в своих проектах?
Answer from AI
sobes.tech AI
Да, в проектах на Kotlin для Android я использовал sealed class для моделирования ограниченных иерархий состояний или событий. Sealed class позволяет определить набор подклассов, которые известны на этапе компиляции, что упрощает обработку через when без необходимости писать ветку else.
Пример использования sealed class для описания состояний загрузки:
sealed class LoadState {
object Loading : LoadState()
data class Success(val data: List<String>) : LoadState()
data class Error(val error: Throwable) : LoadState()
}
fun handleState(state: LoadState) {
when(state) {
is LoadState.Loading -> println("Загрузка...")
is LoadState.Success -> println("Данные получены: ${state.data}")
is LoadState.Error -> println("Ошибка: ${state.error.message}")
}
}
Это помогает сделать код более безопасным и читаемым, особенно при работе с состояниями UI или результатами операций.