Sobes.tech
Junior — Middle

Vai jūs varat sniegt piemēru, kā izmantot Aizvērtu Klasi, lai modelētu dažādus objekta stāvokļus?

sobes.tech AI

Atbilde no AI

Kotlin sealed klase ļauj ierobežot manto hierarhiju, definējot fiksētu apakšklases kopumu. Tas ir noderīgi, modelējot objekta stāvokļus, kad ir zināms galīgo variantu skaits.

Piemērs datu ielādes stāvokļu modelēšanai:

sealed class LoadState {
    object Loading : LoadState()
    data class Success(val data: List<String>) : LoadState()
    data class Error(val errorMessage: String) : LoadState()
}

fun handleState(state: LoadState) {
    when(state) {
        is LoadState.Loading -> println("Ielādē...")
        is LoadState.Success -> println("Saņemtie dati: ${state.data}")
        is LoadState.Error -> println("Kļūda: ${state.errorMessage}")
    }
}

Šī pieeja ļauj droši apstrādāt visus iespējamās stāvokļa variantus, un kompilators pārbaudīs, vai visi varianti ir ņemti vērā.