Junior — Middle
Használtad már a sealed class-t a projektjeidben?
sobes.tech MI
Válasz az MI-től
Igen, Androidhoz Kotlin projektekben használtam sealed class-t a korlátozott állapot- vagy eseményhierarchiák modellezésére. A sealed class lehetővé teszi, hogy egy halmazt definiáljunk az alosztályokból, amelyek a fordítási időben ismertek, ezáltal egyszerűbbé téve a kezelésüket when-nal anélkül, hogy else ágat kellene írni.
Példa a sealed class használatára a betöltési állapotok leírására:
sealed class LoadState {
object Loading : LoadState()
data class Success(val data: List<String>) : LoadState()
data class Error(val error: Throwable) : LoadState()
}
fun handleState(state: LoadState) {
when(state) {
is LoadState.Loading -> println("Betöltés...")
is LoadState.Success -> println("Adatok: ${state.data}")
is LoadState.Error -> println("Hiba: ${state.error.message}")
}
}
Ez segít biztonságosabbá és olvashatóbbá tenni a kódot, különösen UI állapotok vagy műveleti eredmények esetén.