Sobes.tech
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.