android 如何在Kotlin中通过序数值获取枚举成员?

f3temu5u  于 2024-01-04  发布在  Android
关注(0)|答案(4)|浏览(146)

我知道我可以使用代码Color.BLUE.ordinal获得枚举成员的序号值。
现在我希望得到Color.绿色当我知道一个枚举成员的序数值时,我该怎么办?

验证码

  1. enum class Color{
  2. RED,BLACK,BLUE,GREEN,WHITE
  3. }
  4. var aOrdinal=Color.BLUE.ordinal //it's 2
  5. val bOrdinal=3 //How can I get Color.Green

字符串

noj0wjuj

noj0wjuj1#

只需使用values()函数,该函数将返回枚举值的数组,并使用序号作为索引

示例

  1. val bOrdinal=3
  2. val yourColor : Color = Color.values()[bOrdinal]

字符串

de90aj5v

de90aj5v2#

安全第一:

  1. // Default to null
  2. val color1: Color? = Color.values().getOrNull(bOrdinal)
  3. // Default to a value
  4. val color2: Color = Color.values().getOrElse(bOrdinal) { Color.RED }

字符串

luaexgnf

luaexgnf3#

您可以使用KotlinenumValues<>()来获取它
例如

  1. enum class Color{
  2. GREEN,YELLOW
  3. }
  4. fun main(str:Array<String>){
  5. val c = enumValues<Color>()[1]
  6. print("Color name is ${c.name} and ordinal is ${c.ordinal}")
  7. }

字符串
打印“颜色名称为黄色,序号为1”

i1icjdpr

i1icjdpr4#

作为
从1.9开始,建议将“Enum.values()”替换为“Enum.entries”
用途:

  1. val bOrdinal = 3
  2. val yourColor = Color.entries[bOrdinal]

字符串

相关问题