Junior
Kuidas rakendada ja kasutada andmesklasse Kotlinis?
sobes.tech AI
Vastus AI-lt
Andmesordid kasutatakse andmete salvestamiseks. Kogumiskoostaja genereerib automaatselt kasulikke meetodeid, nagu equals(), hashCode(), toString(), copy() ja componentN() funktsioone.
Rakendus: klassi deklaratsioon prefiksiga data.
data class User(val name: String, val age: Int)
Kasutamine:
Näite loomine:
val user = User("Alice", 30)
Omaduste kasutamine:
val name = user.name // Alice
val age = user.age // 30
Genereeritud meetodite kasutamine:
println(user.toString()) // User(name=Alice, age=30)
teineUser = User("Alice", 30)
println(user == anotherUser) // true (genereeritud `equals()`)
vanemUser = user.copy(age = 31) // User(name=Alice, age=31)
kasutajaNimi, kasutajaVanus = user // Destructuring
println("Nimi: $kasutajaNimi, Vanus: $kasutajaVanus") // Nimi: Alice, Vanus: 30
Omadused:
- Kõik põhikonstruktoriparameetrid peavad olema
valvõivar. - Andmesordid ei saa olla
abstract,open,sealedvõiinner. - Klassikorpuse omadused ei osale meetodite (
equals(),hashCode(),copy(),componentN()) genereerimisel.
data class Person(val name: String) {
var height: Int = 0 // Ei osale `equals()`, `hashCode()`, `copy()`, `componentN()`
}
val p1 = Person("Bob")
p1.height = 180
val p2 = Person("Bob")
p2.height = 190
println(p1 == p2) // true