Junior — Middle
Čím sa líši deklarácia sealed triedy od dátovej triedy v Kotlin?
sobes.tech AI
Odpoveď od AI
sealed class a data class v Kotlinu slúžia rôznym účelom:
-
sealed class — je obmedzená trieda, ktorá môže mať pevne stanovený počet podtried. Je užitočná na modelovanie hierarchií s obmedzeným počtom možností, napríklad na vyjadrenie stavov alebo udalostí. Kompilátor pozná všetky podtriedy sealed triedy, čo umožňuje použitie when bez else.
-
data class — je trieda určená na ukladanie dát. Automaticky generuje metódy equals, hashCode, toString, ako aj funkcie copy a componentN, ktoré uľahčujú prácu s dátami.
Príklad sealed class:
sealed class Result {
data class Success(val data: String) : Result()
object Loading : Result()
data class Error(val error: Throwable) : Result()
}
Príklad data class:
data class User(val name: String, val age: Int)
Týmto spôsobom obmedzuje sealed class hierarchiu dedičnosti, zatiaľ čo data class uľahčuje prácu s dátami.