Sobes.tech
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 val või var.
  • Andmesordid ei saa olla abstract, open, sealed või inner.
  • 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