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ē...")
}
}