Sobes.tech
Junior — Middle

Jaký je účel třídy deklarované pomocí modifikátoru sealed?

sobes.tech AI

Odpověď od AI

Třída deklarovaná s modifikátorem sealed je určena k omezení dědičnosti. Taková třída může mít podtřídy, ale pouze ty, které jsou deklarovány ve stejném souboru. To umožňuje kontrolovat a fixovat hierarchii dědičnosti, čímž je předvídatelnější a bezpečnější.

Například v Kotlinu jsou sealed třídy často používány k reprezentaci omezené sady stavů nebo variant, což je užitečné při práci s výrazy when, kde kompilátor může zkontrolovat úplnost zpracování všech variant.

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