我知道我可以使用代码Color.BLUE.ordinal获得枚举成员的序号值。现在我希望得到Color.绿色当我知道一个枚举成员的序数值时,我该怎么办?
Color.BLUE.ordinal
验证码
enum class Color{ RED,BLACK,BLUE,GREEN,WHITE}var aOrdinal=Color.BLUE.ordinal //it's 2val bOrdinal=3 //How can I get Color.Green
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
字符串
noj0wjuj1#
只需使用values()函数,该函数将返回枚举值的数组,并使用序号作为索引
values()
示例
val bOrdinal=3val yourColor : Color = Color.values()[bOrdinal]
val bOrdinal=3
val yourColor : Color = Color.values()[bOrdinal]
de90aj5v2#
安全第一:
// Default to nullval color1: Color? = Color.values().getOrNull(bOrdinal)// Default to a valueval color2: Color = Color.values().getOrElse(bOrdinal) { Color.RED }
// Default to null
val color1: Color? = Color.values().getOrNull(bOrdinal)
// Default to a value
val color2: Color = Color.values().getOrElse(bOrdinal) { Color.RED }
luaexgnf3#
您可以使用KotlinenumValues<>()来获取它例如
enumValues<>()
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}")}
GREEN,YELLOW
fun main(str:Array<String>){
val c = enumValues<Color>()[1]
print("Color name is ${c.name} and ordinal is ${c.ordinal}")
字符串打印“颜色名称为黄色,序号为1”
i1icjdpr4#
作为从1.9开始,建议将“Enum.values()”替换为“Enum.entries”用途:
val bOrdinal = 3val yourColor = Color.entries[bOrdinal]
val bOrdinal = 3
val yourColor = Color.entries[bOrdinal]
4条答案
按热度按时间noj0wjuj1#
只需使用
values()
函数,该函数将返回枚举值的数组,并使用序号作为索引示例
字符串
de90aj5v2#
安全第一:
字符串
luaexgnf3#
您可以使用Kotlin
enumValues<>()
来获取它例如
字符串
打印“颜色名称为黄色,序号为1”
i1icjdpr4#
作为
从1.9开始,建议将“Enum.values()”替换为“Enum.entries”
用途:
字符串