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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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}")
    }
}

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку