Was ich versuche zu erreichen, ist ein einfaches Muster, das ich in Java verwende und sollte in Kotlin nach der documentation machbar sein. Ich möchte nur eine enum-Klasse mit ein paar konstanten Definitionen deklarieren, die dieselben abstrakten Funktionen implementieren.Wie abstrakte Funktion in Enum-Konstanten zu implementieren
Mein Problem ist, dass ich es nicht schaffen kann, meinen Code kompilieren zu lassen. Ich bekomme immer den gleichen Fehler:
modifier abstract not allowed here
Hier ist der Code:
enum class Program {
HOME {
override fun readableName(context: Context): String {
return context.getString(R.string.program_home)
}
},
WEEKEND {
override fun readableName(context: Context): String {
return context.getString(R.string.program_weekend)
}
},
SHOPPING {
override fun readableName(context: Context): String {
return context.getString(R.string.program_shopping)
}
};
abstract fun readableName(context: Context): String
}
Ich habe sogar versucht, mit dem Beispielcode aus der Dokumentation und doch auch dies nicht kompiliert.
Konnte jemand eine Idee über dieses ungerade Problem haben? Übrigens benutze ich momentan Kotlin 1.0.6.
"Enum anonyme Klasse" - welcher Teil davon ist anonym? Vielleicht meintest du "Wie benutze ich Enum mit einer abstrakten Funktion in Kotlin?" Oder so ähnlich? – voddan
@voddan Basierend auf der Frage, würde ich sagen, du hast Recht. Ich habe den Titel bearbeitet. –