Avatar ·

Wie erweitert (erbt) man eine data class in Kotlin richtig? Mögliche Workarounds

Hallo zusammen! Ich habe gerade angefangen, Kotlin zu lernen, und bin auf ein unerwartetes Problem gestoßen. Ich muss eine Klassenhierarchie für die Modellierung von Entitäten in einer Anwendung erstellen. Zum Beispiel gibt es eine Basisklasse `User` mit den Feldern `id` und `email`, und ich möchte davon eine data class `AdminUser` ableiten, die ein Feld `role` hinzufügt. Ich habe folgenden Code geschrieben: ```kotlin data class User(val id: Long, val email: String) data class AdminUser(val id: Long, val email: String, val role: String) : User(id, email) ``` Aber der Compiler gibt einen Fehler aus: "data class may not inherit from a data class". Ich habe gegoogelt und verstanden, dass eine data class in Kotlin nicht von einer anderen data class erben kann, weil der Compiler keine korrekten Methoden `equals()`, `hashCode()`, `toString()` und `copy()` für eine solche Hierarchie generieren kann. Aber was tun? Ich habe mehrere ähnliche Entitäten mit gemeinsamen Feldern und möchte Code-Duplizierung vermeiden. Ich habe es mit normalen Klassen versucht, verliere aber die Vorteile von data class (automatische equals, copy, d