Junior — Middle
Kas ir slēgta klase un kādas ir tās galvenās priekšrocības un īpašības?
sobes.tech AI
Atbilde no AI
Aizvērta klase (sealed class) ir īpaša klase Kotlin valodā (bieži lietota Android izstrādē), kas ierobežo mantošanas hierarhiju. Galvenā ideja ir tāda, ka visas aizvērto klases apakšklases ir jādeklarē tajā pašā failā, kur ir pati aizvērta klase.
Priekšrocības un īpašības:
- Ļauj kompilatoram zināt pilnu apakšklasu kopu, kas uzlabo drošību un ērtību, strādājot ar
whenizteiksmēm — kompilators pārbaudīs, vai ir apstrādātas visas variācijas. - Vienkāršo ierobežotu hierarhiju modelēšanu, piemēram, stāvokļus vai notikumus.
- Aizliedz jaunu apakšklasu izveidi ārpus faila, kas palielina arhitektūras kontroli.
Piemērs:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Dati: ${result.data}")
is Result.Error -> println("Kļūda: ${result.error.message}")
}
}