Sobes.tech
Junior — Middle

Welche Eigenschaften und Einschränkungen gibt es bei Datenklassen in Kotlin?

sobes.tech KI

Antwort von AI

Datenklassen (data class) in Kotlin sind für die Speicherung von Daten vorgesehen und stellen automatisch nützliche Methoden bereit: equals(), hashCode(), toString(), copy() und Funktionen für die Destrukturierung.

Eigenschaften und Einschränkungen:

  • Die Klasse muss mindestens einen Parameter im Konstruktor haben.
  • Alle Parameter des Konstruktors, die im primary constructor deklariert sind, werden automatisch zu Eigenschaften.
  • Die Klasse kann nicht abstrakt, offen, intern sein oder von anderen Klassen erben (aber kann Schnittstellen implementieren).
  • Der Compiler generiert Methoden nur für die im Konstruktor deklarierten Eigenschaften, nicht für zusätzliche Eigenschaften.
  • Es ist möglich, die generierten Methoden zu überschreiben, wenn man das Verhalten ändern möchte.

Beispiel:

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

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // erstellt ein neues Objekt mit geändertem Alter
println(user1) // User(name=Alice, age=30)