Kotlin enum class 匿名類實例
阿新 • • 發佈:2017-10-20
其它 spa 重載 可能 es2017 color 父類 匿名類 開發
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做實際開發時就會愛上它,畢竟,任何創新肯定都是從老路上隱含提出的需求。
你不待見,很可能是你道行不夠而已。
Kotlin enum class 匿名類實例