Quantcast
Channel: How do I create an enum from an Int in Kotlin? - Stack Overflow
Viewing all articles
Browse latest Browse all 13

Answer by Mahozad for How do I create an enum from an Int in Kotlin?

$
0
0

This is for anyone looking for getting the enum from its ordinal or index integer.

enum class MyEnum { RED, GREEN, BLUE }MyEnum.values()[1] // GREEN

Another solution and its variations:

inline fun <reified T : Enum<T>> enumFromIndex(i: Int) = enumValues<T>()[i]enumFromIndex<MyEnum>(1) // GREEN
inline fun <reified T : Enum<T>> enumFromIndex(i: Int) = enumValues<T>().getOrNull(i)enumFromIndex<MyEnum>(3) ?: MyEnum.RED // RED
inline fun <reified T : Enum<T>> enumFromIndex(i: Int, default: T) =    enumValues<T>().getOrElse(i) { default }enumFromIndex(2, MyEnum.RED) // BLUE

It is an adapted version of another answer. Also, thanks to Miha_x64 for this answer.


Viewing all articles
Browse latest Browse all 13

Trending Articles