Sobes.tech
Middle

Na čo sa v Kotlin používať data triedy a sealed triedy?

sobes.tech AI

Odpoveď od AI

Dátové triedy zjednodušujú tvorbu tried určených výlučne na ukladanie dát. Prekladač pre ne automaticky generuje:

  • equals()
  • hashCode()
  • toString()
  • copy()
  • componentN() na destrukturalizáciu
dátová trieda User(val meno: String, val vek: Int)

// Použitie
val user = User("Alice", 30)
println(user) // Zobrazí User(meno=Alice, vek=30)
val user2 = user.copy(vek = 31)
val (meno, vek) = user // Destrukturalizácia

Uzavreté triedy (sealed) predstavujú obmedzenú hierarchiu tried, kde sú všetky možné podtriedy známe počas kompilácie. To umožňuje ich použitie v výrazoch when bez bloku else, čo zaručuje úplnú kontrolu všetkých možností.

uzavretá trieda Result {
    dátová trieda Success(val data: String) : Result()
    dátová trieda Error(val správa: String) : Result()
    objekt Loading : Result() // Objekt, pretože nemá parametre
}

fun handleResult(result: Result) {
    when (result) {
        is Result.Success -> println("Úspech: ${result.data}")
        is Result.Error -> println("Chyba: ${result.správa}")
        Result.Loading -> println("Načítava sa...")
    }
}

Porovnanie:

Vlastnosť Dátová trieda Uzavretá trieda
Účel Ukladanie dát Obmedzená hierarchia tried
Schopnosti Automatické generovanie metód Kompletná kontrola v when
Podtriedy Bez špecifických obmedzení Musia byť v rovnakom súbore alebo module
Použitie Modely dát, DTO Predstavenie stavov, udalostí, variantov