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