Junior
Jak implementovat a používat datové třídy v Kotlinu?
sobes.tech AI
Odpověď od AI
Datové třídy se používají k ukládání dat. Kompilátor pro ně automaticky generuje užitečné metody, jako jsou equals(), hashCode(), toString(), copy() a funkce componentN().
Implementace: deklarace třídy s předponou data.
data class User(val name: String, val age: Int)
Použití:
Vytvoření instance:
val user = User("Alice", 30)
Přístup k vlastnostem:
val name = user.name // Alice
val age = user.age // 30
Použití generovaných metod:
println(user.toString()) // User(name=Alice, age=30)
dalšíUser = User("Alice", 30)
println(user == anotherUser) // true (equals() generováno)
staršíUser = user.copy(age = 31) // User(name=Alice, age=31)
uživatelJméno, uživatelVěk = user // Destrukturalizace
println("Jméno: $uživatelJméno, Věk: $uživatelVěk") // Jméno: Alice, Věk: 30
Vlastnosti:
- Všechny hlavní konstruktorové parametry musí být
valnebovar. - Datové třídy nemohou být
abstract,open,sealedneboinner. - Vlastnosti z těla třídy se nepodílejí na generování metod (
equals,hashCode,copy,componentN()).
data class Person(val name: String) {
var height: Int = 0 // Neúčastní se `equals`, `hashCode`, `copy`, `componentN()`
}
val p1 = Person("Bob")
p1.height = 180
val p2 = Person("Bob")
p2.height = 190
println(p1 == p2) // true