Sobes.tech
Junior

Wie implementiert und verwendet man Datenklassen in Kotlin?

sobes.tech KI

Antwort von AI

Datenklassen werden zum Speichern von Daten verwendet. Der Compiler generiert automatisch nützliche Methoden für sie, wie equals(), hashCode(), toString(), copy() und componentN()-Funktionen.

Implementierung: Deklaration der Klasse mit dem Präfix data.

data class User(val name: String, val age: Int)

Verwendung:

Erstellen einer Instanz:

val user = User("Alice", 30)

Zugriff auf Eigenschaften:

val name = user.name // Alice
val age = user.age   // 30

Verwendung der generierten Methoden:

println(user.toString()) // User(name=Alice, age=30)

val anotherUser = User("Alice", 30)
println(user == anotherUser) // true (equals() generiert)

val olderUser = user.copy(age = 31) // User(name=Alice, age=31)

val (userName, userAge) = user // Destrukturierung
println("Name: $userName, Age: $userAge") // Name: Alice, Age: 30

Eigenschaften:

  • Alle primären Konstruktorparameter müssen entweder val oder var sein.
  • Datenklassen können nicht abstract, open, sealed oder inner sein.
  • Eigenschaften im Klassenrumpf nehmen nicht an der Generierung der Methoden (equals, hashCode, copy, componentN) teil.
data class Person(val name: String) {
    var height: Int = 0 // Nimmt nicht an equals/hashCode/copy/componentN teil
}

val p1 = Person("Bob")
p1.height = 180
val p2 = Person("Bob")
p2.height = 190
println(p1 == p2) // true