Sobes.tech
Junior — Middle

Kokia yra paskirtis klasės, paskelbta naudojant modifikatorių sealed?

sobes.tech AI

Atsakymas iš AI

Užblokuota klasė, deklaruota su sealed modifikatoriumi, skirta riboti paveldėjimą. Tokia klasė gali turėti pogrupius, bet tik tuos, kurie yra deklaruoti toje pačioje faile. Tai leidžia kontroliuoti ir fiksuoti paveldėjimo hierarchiją, padarant ją labiau prognozuojamą ir saugią.

Pavyzdžiui, Kotlin kalboje sealed klasės dažnai naudojamos ribotam būsenų ar variantų rinkiniui atvaizduoti, kas patogu dirbant su when išraiškomis, kuriose kompiliatorius gali patikrinti visų variantų pilnumą.

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