Sobes.tech
Junior — Middle

Mi az a zárt osztály, és mik a fő előnyei és jellemzői?

sobes.tech MI

Válasz az MI-től

A zárt osztály (sealed class) egy speciális típus a Kotlinban (gyakran használt Android fejlesztésben), amely korlátozza az öröklődési hierarchiát. A fő ötlet az, hogy minden leszármazott osztály ugyanabban a fájlban legyen deklarálva, mint maga a zárt osztály.

Előnyök és jellemzők:

  • Lehetővé teszi a fordítónak, hogy ismerje az összes leszármazott osztályt, ezáltal növelve a biztonságot és a kényelmet a when kifejezéseknél — a fordító ellenőrzi, hogy minden változat kezelt-e.
  • Egyszerűsíti a korlátozott hierarchiák modellezését, például állapotokat vagy eseményeket.
  • Megakadályozza új leszármazott osztályok létrehozását a fájlon kívül, növelve az architektúra ellenőrzését.

Példa:

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