Sobes.tech
Junior — Middle

Kādas priekšrocības un lietošanas scenārijus jūs zināt par sealed class Kotlin?

sobes.tech AI

Atbilde no AI

Aizvērtā klase Kotlin tiek izmantota mantošanas hierarhijas ierobežošanai. Visas apakšklases aizvērtajai klasei jābūt deklarētām tajā pašā failā kā pati aizvērtā klase. Tas ļauj kompilatoram zināt visas iespējamās mantošanas variācijas, kas ir noderīgi, izmantojot when izteicienus bez nepieciešamības rakstīt else zaru.

Priekšrocības:

  • Tipu drošība: kompilators pārbauda visu variāciju pilnīgumu.
  • Ērti modeļot ierobežotus stāvokļu vai notikumu kopumus.

Izmantošanas scenāriji:

  • Stāvokļu īstenošana "stāvokļa" modelī.
  • Notikumu vai komandu apstrāde.
  • Ierobežota variāciju kopuma attēlošana, piemēram, API atbildes.

Piemērs:

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("Dati: ${result.data}")
        is Result.Error -> println("Kļūda: ${result.error.message}")
        Result.Loading -> println("Ielādē...")
    }
}