Kotlin 中的枚举类具有合成方法,允许遍历定义的枚举常量,并通过其名称获取枚举常数。

EnumClass.valueOf(value: String): EnumClass // 转换指定 name 为枚举值,若未匹配成功,会抛出IllegalArgumentException EnumClass.values(): Array<EnumClass> // 以数组的形式,返回枚举值

获取枚举相关信息:

val name: String //获取枚举名称 val ordinal: Int //获取枚举值在所有枚举数组中定义的顺序 enum class Color{ RED,BLACK,BLUE,GREEN,WHITE fun main(args: Array<String>) { var color:Color=Color.BLUE println(Color.values()) println(Color.valueOf("RED")) println(color.name) println(color.ordinal)

自 Kotlin 1.1 起,可以使用 enumValues<T>() enumValueOf<T>() 函数以泛型的方式访问枚举类中的常量 enum class RGB { RED, GREEN, BLUE } inline fun <reified T : Enum<T>> printAllValues() { print(enumValues<T>().joinToString { it.name }) fun main(args: Array<String>) { printAllValues<RGB>() // 输出 RED, GREEN, BLUE