Junior — Middle
Ce avantaje și scenarii de utilizare cunoști pentru clasa sealed în Kotlin?
sobes.tech AI
Răspuns de la AI
Clasa sealed în Kotlin este utilizată pentru a restricționa ierarhia de moștenire. Toate subclasele clasei sealed trebuie declarate în același fișier cu clasa sealed însăși. Acest lucru permite compilatorului să cunoască toate variantele posibile de moștenitori, ceea ce este util pentru utilizarea în expresii when fără a fi nevoie să scrieți o ramură else.
Avantaje:
- Siguranța tipurilor: compilatorul verifică exhaustivitatea tratamentului tuturor variantelor.
- Convenabil pentru modelarea seturilor limitate de stări sau evenimente.
Scenarii de utilizare:
- Implementarea stărilor în modelul "stare".
- Procesarea evenimentelor sau comenzilor.
- Reprezentarea unui set limitat de opțiuni, de exemplu, răspunsuri API.
Exemplu:
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("Date: ${result.data}")
is Result.Error -> println("Eroare: ${result.error.message}")
Result.Loading -> println("Se încarcă...")
}
}