Sobes.tech
Junior — Middle

Kokias naudas ir naudojimo scenarijus žinote apie sealed class Kotlin?

sobes.tech AI

Atsakymas iš AI

Kepinė klasė Kotlin naudojama paveldėjimo hierarchijos apribojimui. Visos paveldėjusios klasės turi būti deklaruotos toje pačioje faile kaip ir pati kepinė klasė. Tai leidžia kompiliatoriui žinoti visas galimas paveldėtojų variacijas, kas yra naudinga naudojant when išraiškose be būtinybės rašyti else šaką.

Privalumai:

  • Tipų saugumas: kompiliatorius tikrina visų variantų pilnumą.
  • Patogu modeliuojant ribotus būsenų ar įvykių rinkinius.

Naudojimo scenarijai:

  • Būsenų įgyvendinimas "būsenos" modelyje.
  • Įvykių ar komandų apdorojimas.
  • Riboto variantų rinkinio atvaizdavimas, pvz., API atsakymai.

Pavyzdys:

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("Duomenys: ${result.data}")
        is Result.Error -> println("Klaida: ${result.error.message}")
        Result.Loading -> println("Įkelti...")
    }
}