Sobes.tech
Junior — Middle

Каква е целта на класа, обявен с помощта на модификатора sealed?

sobes.tech AI

Отговор от AI

Клас, обявен с модификатора sealed, е предназначен за ограничаване на наследяването. Такъв клас може да има подкласове, но само тези, които са обявени в същия файл. Това позволява контрол и фиксиране на йерархията на наследяване, като я прави по-предсказуема и безопасна.

Например, в Kotlin, sealed класовете често се използват за представяне на ограничен набор от състояния или варианти, което е удобно при работа с изрази 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}")
    }
}