OK, jetzt da Kotlin offiziell raus ist und ich wieder damit spiele, bin ich ziemlich verwirrt, dass ich zwischen den Vorteilen von sealed
und data
wählen muss, aber irgendwie kann beides nicht haben.Kotlin: versiegelte Klasse kann Datenklassen nicht "enthalten"? Warum?
Dies ist zum Beispiel, scheint mir sinnvoll zu machen, aber nicht kompiliert:
sealed class Expr {
data class Const(val number: Double) : Expr()
data class Sum(val expr1 : Expr, val expr2 : Expr) : Expr()
}
, weil die Datenklassen nicht anderen Klassen erweitern können.
Gibt es etwas, das mir fehlt?
Seit Kotlin 1.1 ist dies jetzt möglich https://kotlinlang.org/docs/reference/whatsnew.11.html?q=da&p=0#sealed-and-data-classes. – Stim