Junior — Middle
Milyen előnyeit és használati eseteit ismered a sealed classnak Kotlinban?
sobes.tech MI
Válasz az MI-től
A sealed osztály Kotlinban a öröklődési hierarchia korlátozására szolgál. Minden sealed osztály alosztályának ugyanabban a fájlban kell lennie, mint maga a sealed osztály. Ez lehetővé teszi a fordítónak, hogy minden lehetséges örököst ismerjen, ami hasznos a when kifejezésekben anélkül, hogy else ágat kellene írni.
Előnyök:
- Típusbiztonság: a fordító ellenőrzi az összes variáns kezelésének teljességét.
- Hasznos korlátozott állapot- vagy eseménykészletek modellezéséhez.
Használati forgatókönyvek:
- Állapotok implementálása "állapot" mintában.
- Események vagy parancsok kezelése.
- Korlátozott lehetőségek, például API válaszok reprezentálása.
Példa:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
object Loading : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Adatok: ${result.data}")
is Result.Error -> println("Hiba: ${result.error.message}")
Result.Loading -> println("Betöltés...")
}
}