Junior — Middle
64
Какова цель использования sealed class в программировании?
Компании, где спрашивали
Смарттек
Ответ от нейросети
sobes.tech AI
Sealed class (запечатанный класс) — это специальный тип класса, который ограничивает наследование: все подклассы должны быть объявлены в том же файле, что и сам sealed класс. Это позволяет компилятору знать полный набор наследников и обеспечивает более строгий контроль над иерархией классов.
Цель использования sealed class:
- Гарантировать, что все возможные варианты наследников известны и ограничены.
- Упростить обработку таких классов, например, при использовании конструкции
whenв Kotlin, где компилятор может проверить полноту обработки всех вариантов. - Повысить безопасность и предсказуемость кода.
Пример на Kotlin:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Данные: ${result.data}")
is Result.Error -> println("Ошибка: ${result.error.message}")
}
}
Здесь Result — sealed класс, и все его наследники определены в одном файле, что позволяет безопасно обрабатывать все варианты.