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
valodervarsein. - Datenklassen können nicht
abstract,open,sealedoderinnersein. - 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