Sobes.tech
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.