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
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Überwachung von PHP-Anwendungen: Erweiterte Metriken und Alarme
Wie man deprecated keyWindow in iOS 13 behebt: vollständiger Leitfaden
$(document).ready ohne jQuery: moderne Alternativen im Jahr 2025
Dateien in C++: Vom Anfänger zum Profi in 20 Minuten