Как я могу получить член enum по порядковому значению в kotlin? - PullRequest
0 голосов
/ 16 ноября 2018

Я знаю, что могу получить порядковый номер члена перечисления, используя код Color.BLUE.ordinal.

Теперь я надеюсь получить 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

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Просто используйте функцию values(), которая будет возвращать массив значений перечисления и использовать порядковый номер в качестве индекса

Пример

val bOrdinal=3

val yourColor : Color = Color.values()[bOrdinal]
0 голосов
/ 16 ноября 2018

Вы можете использовать Kotlin 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}")
}

Печать "Имя цвета ЖЕЛТЫЙ, а порядковый номер 1"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...