-
实例可数的类,注意枚举也是类
-
可以修改构造,添加成员
-
可以提升代码的表现力。也有一定的性能开销
code
package com.yzdzy.kotlin
enum class LogLevel(val id: Int) {
VERBOSE(0), DEBUG(1), INFO(2), WARN(3), ERROR(4), ASSERT(5);
fun getTag(): String {
return "$id,$name"
}
override fun toString(): String {
return "$name,$ordinal"
}
}
就相当于下面的代码
class LogLevel2 protected constructor() {
companion object {
val VERBOSE = LogLevel2()
val DEBUG = LogLevel2()
val INFO = LogLevel2()
val WARN = LogLevel2()
val ASSERT = LogLevel2()
}
}
fun main(args: Array<String>) {
println(LogLevel.DEBUG.getTag())
//顺序 相当于索引index
println(LogLevel.DEBUG.ordinal)
//打印所有数据
LogLevel.values().map(::println)
//拿到实例对象
println(LogLevel.valueOf("error".toUpperCase()))
}
来源:oschina
链接:https://my.oschina.net/u/4275644/blog/4316305