假设我有许多枚举类,如下所示:
enum class Hero(val alias: String) {
SUPERMAN("Clark Kent"),
BATMAN("Bruce Wayne");
companion object {
fun fromAlias(value: String): Hero? = Hero.values().find { it.alias.equals(value, true) }
}
}
enum class Villain(val alias: String) {
TWO_FACE("Harvey Dent"),
RIDDLER("Edward Nigma");
companion object {
fun fromAlias(value: String): Villain? = Villain.values().find { it.alias.equals(value, true) }
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够创建一个通用接口来处理该fromAlias
方法,以便我仍然可以使用Hero.fromAlias("Bruce Wayne")
. 所以我的枚举类将被简化为:
enum class Hero(override val alias: String): AliasedEnum<Hero> {
SUPERMAN("Clark Kent"),
BATMAN("Bruce Wayne");
}
enum class Villain(override val alias: String): AliasedEnum<Villain> {
TWO_FACE("Harvey …
Run Code Online (Sandbox Code Playgroud)