[英]How can I get a enum member by the ordinal value in kotlin?
I know I can get the ordinal value of a enum member using the code Color.BLUE.ordinal
.我知道我可以使用代码
Color.BLUE.ordinal
获取枚举成员的序号值。
Now I hope to get Color.Green when I know the ordinal value of a enum member, how can I do?现在我希望在知道枚举成员的序号值时得到 Color.Green,我该怎么办?
Code代码
enum class Color{
RED,BLACK,BLUE,GREEN,WHITE
}
var aOrdinal=Color.BLUE.ordinal //it's 2
val bOrdinal=3 //How can I get Color.Green
Just use values()
function which will return the Array of enum values and use ordinal as an index只需使用
values()
函数,它将返回枚举值数组并使用序数作为索引
Example例子
val bOrdinal=3
val yourColor : Color = Color.values()[bOrdinal]
👷 Safety first: 👷 安全第一:
// Default to null
val color1: Color? = Color.values().getOrNull(bOrdinal)
// Default to a value
val color2: Color = Color.values().getOrElse(bOrdinal) { Color.RED }
You can use Kotlin enumValues<>()
to get it您可以使用 Kotlin
enumValues<>()
来获取它
Example例子
enum class Color{
GREEN,YELLOW
}
fun main(str:Array<String>){
val c = enumValues<Color>()[1]
print("Color name is ${c.name} and ordinal is ${c.ordinal}")
}
Prints "Color name is YELLOW and ordinal is 1"打印“颜色名称为黄色,序数为 1”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.