Sobes.tech
Junior — Middle

Aký je účel triedy deklarovanej pomocou modifikátora sealed?

sobes.tech AI

Odpoveď od AI

Trieda deklarovaná s modifikátorom sealed je určená na obmedzenie dedičnosti. Takáto trieda môže mať podtriedy, ale len tie, ktoré sú deklarované v tom istom súbore. To umožňuje kontrolu a fixáciu hierarchie dedičnosti, čím je predvídateľnejšia a bezpečnejšia.

Napríklad v Kotlinu sa sealed triedy často používajú na reprezentáciu obmedzeného súboru stavov alebo variantov, čo je užitočné pri práci s výrazmi when, kde kompilátor môže skontrolovať úplnosť spracovania všetkých variantov.

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("Dáta: ${result.data}")
        is Result.Error -> println("Chyba: ${result.error.message}")
    }
}