Junior — Middle
Какво е запечатан клас и какви са основните му предимства и характеристики?
sobes.tech AI
Отговор от AI
Затворен клас (sealed class) е специален вид клас в Kotlin (често използван в разработката за Android), който ограничава йерархията на наследяване. Основната идея е, че всички подкласове на затворения клас трябва да бъдат обявени в същия файл като самия затворен клас.
Предимства и характеристики:
- Позволява на компилатора да знае пълния набор от подкласове, което подобрява безопасността и удобството при работа с изрази
when— компилаторът ще провери дали всички варианти са обработени. - Улеснява моделирането на ограничени йерархии, например състояния или събития.
- Забранява създаването на нови подкласове извън файла, което увеличава контрола върху архитектурата.
Пример:
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}")
}
}