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 |