Sobes.tech
Junior — Middle

Mi a célja a sealed módosítóval deklarált osztálynak?

sobes.tech MI

Válasz az MI-től

Egy sealed módosítóval deklarált osztályt arra tervezték, hogy korlátozza az öröklődést. Ilyen osztálynak lehetnek alosztályai, de csak azok, amelyek ugyanabban a fájlban vannak deklarálva. Ez lehetővé teszi az öröklődési hierarchia ellenőrzését és rögzítését, így az előrejelezhetőbbé és biztonságosabbá válik.

Például Kotlinban a sealed osztályokat gyakran használják korlátozott állapotok vagy variánsok halmazának ábrázolására, ami hasznos a when kifejezésekkel való munkában, ahol a fordító ellenőrizheti az összes variáns kezelésének teljességét.

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