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}")
}
}