Sealed Class в Kotlin позволяет ограничить иерархию наследования, определяя фиксированный набор подклассов. Это удобно для моделирования состояний объекта, когда известно конечное число вариантов.
Можешь привести пример использования Sealed Class для моделирования различных состояний объекта?
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}")
}
}
Такой подход позволяет безопасно обрабатывать все возможные состояния, и компилятор проверит, что все варианты учтены.