Sobes.tech
Junior — Middle

Kāda ir mērķis klasei, kas ir paziņota ar modifikatoru sealed?

sobes.tech AI

Atbilde no AI

Klase, deklarēta ar modifikatoru sealed, ir paredzēta ierobežot mantošanu. Šāda klase var būt apakšklases, bet tikai tās, kas ir deklarētas tajā pašā failā. Tas ļauj kontrolēt un fiksēt mantošanas hierarhiju, padarot to paredzamāku un drošāku.

Piemēram, Kotlin valodā sealed klases bieži tiek izmantotas, lai attēlotu ierobežotu stāvokļu vai variantu kopu, kas ir noderīgi, strādājot ar when izteiksmēm, kurās kompilators var pārbaudīt visu variantu pilnīgumu.

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("Dati: ${result.data}")
        is Result.Error -> println("Kļūda: ${result.error.message}")
    }
}