Kotlin里的枚举类里有新玩意:就是枚举类的常量可以同时看成是一个同名匿名类
既然是类就可以与方法关联
看看官网的代码
如果你有过其它语言的使用枚举的经历,你可能对这个定义和说明很迷惑
我给你一个例子和结果,你就清楚多了
enum class ProtocolState {
WAITING {
override fun signal() = TALKING
},
TALKING {
override fun signal() = WAITING
};
abstract fun signal(): ProtocolState
}
fun main(args: Array<String>) {
val ev:ProtocolState = ProtocolState.WAITING
println(ev.signal())
}
//结果
TALKING
Finally:
枚举常量支持枚举类,支持重载父类的方法,枚举常量匿名类规则和常量一致,但常量匿名类和父类的其它分量要用";"隔开
好了,也许,你不屑于这种想法
但是,也许等你用上Kotlin做实际开发时就会爱上它,毕竟,任何创新肯定都是从老路上隐含提出的需求。
你不待见,很可能是你道行不够而已。