Sobes.tech
Junior — Middle

Kas olete kasutanud sealed class oma projektides?

sobes.tech AI

Vastus AI-lt

Jah, Androidi projektide Kotlinis olen ma kasutanud sealed classi piiratud olekute või sündmuste hierarhia modelleerimiseks. Sealed class võimaldab määratleda alklasside kogumi, mis on teada kompilatsiooni ajal, mis lihtsustab töötlemist when abil ilma vajaduseta kirjutada else haru.

Näide sealed classi kasutamisest laadimisolekute kirjeldamiseks:

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("Laadimine...")
        is LoadState.Success -> println("Andmed saadud: ${state.data}")
        is LoadState.Error -> println("Viga: ${state.error.message}")
    }
}

See aitab muuta koodi turvalisemaks ja loetavamaks, eriti UI olekute või operatsioonide tulemuste töötlemisel.