Sobes.tech
Назад к вопросам
Junior — Middle
65

Применяли ли вы sealed class в своих проектах?

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

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 или результатами операций.