# How to call enumValues of unknown enum e: KClass\<Enum\>

**URL:** https://discuss.kotlinlang.org/t/how-to-call-enumvalues-of-unknown-enum-e-kclass-enum/7868
**Category:** Language Design
**Created:** [May 20, 2018, 7:45pm UTC](https://discuss.kotlinlang.org/t/how-to-call-enumvalues-of-unknown-enum-e-kclass-enum/7868 "2018-05-20T19:45:42Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![zcb7kbgxtgjt](https://avatars.discourse-cdn.com/v4/letter/z/e47774/32.png) [@zcb7kbgxtgjt](https://discuss.kotlinlang.org/u/zcb7kbgxtgjt)
#### Post date: [May 20, 2018, 7:45pm UTC](https://discuss.kotlinlang.org/t/how-to-call-enumvalues-of-unknown-enum-e-kclass-enum/7868/1 "2018-05-20T19:45:42Z")

</div>

I have variable `unknownEnumClass: KClass<Enum<*>>`. How I can get their values?  
I can not use kotlin.enumValues() function, because it has reified parameter.  
In other words, I want to get a normal analog:

```
fun unknownEnumValues(unknownEnumClass: KClass<Enum<*>>): Array<Enum<*>> {
    @Suppress("UNCHECKED_CAST")
    return unknownEnumClass.java.getMethod("values").invoke(null) as Array<Enum<*>>
}

```

---

<div class="post-metadata">

### Author: ![SackCastellon](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/sackcastellon/32/4553_2.png) [@SackCastellon](https://discuss.kotlinlang.org/u/SackCastellon)
#### Post date: [May 20, 2018, 8:59pm UTC](https://discuss.kotlinlang.org/t/how-to-call-enumvalues-of-unknown-enum-e-kclass-enum/7868/2 "2018-05-20T20:59:15Z")

</div>

Maybe this is what you are looking for?

```run-kotlin
import kotlin.reflect.KClass

fun main(args: Array<String>) {
    println("Vowels")
    getEnumValues(Vowel::class).forEach { print("$it ") }
    println()
    println("Roman Numerals")
    getEnumValues(RomanNumerals::class).forEach { print("$it ") }
}

//sampleStart
fun getEnumValues(enumClass: KClass<out Enum<*>>): Array<out Enum<*>> = enumClass.java.enumConstants
//sampleEnd

enum class Vowel { A, E, I, O, U }
enum class RomanNumerals { I, V, X, L, C, D, M }

```

---

<div class="post-metadata">

### Author: ![zcb7kbgxtgjt](https://avatars.discourse-cdn.com/v4/letter/z/e47774/32.png) [@zcb7kbgxtgjt](https://discuss.kotlinlang.org/u/zcb7kbgxtgjt)
#### Post date: [May 21, 2018, 9:59am UTC](https://discuss.kotlinlang.org/t/how-to-call-enumvalues-of-unknown-enum-e-kclass-enum/7868/3 "2018-05-21T09:59:32Z")

</div>

Thank you.

---

<div class="post-metadata">

### Author: ![arkanovicz](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/arkanovicz/32/7507_2.png) [@arkanovicz](https://discuss.kotlinlang.org/u/arkanovicz)
#### Post date: [May 10, 2023, 2:39pm UTC](https://discuss.kotlinlang.org/t/how-to-call-enumvalues-of-unknown-enum-e-kclass-enum/7868/4 "2023-05-10T14:39:55Z")

</div>

SaclCastellon’s answer is a JVM specific one.

Since there is a multiplatform enumValueOf(value) method in the standard lib, is there a way to achieve the same thing (aka get an enum value from a KClass\<E:Enum\> and a string) in multiplatform code?

---

<div class="post-metadata">

### Author: ![brunojcm](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/brunojcm/32/5116_2.png) [@brunojcm](https://discuss.kotlinlang.org/u/brunojcm)
#### Post date: [September 3, 2023, 3:12pm UTC](https://discuss.kotlinlang.org/t/how-to-call-enumvalues-of-unknown-enum-e-kclass-enum/7868/5 "2023-09-03T15:12:39Z")

</div>

I think this is being tracked in [https://youtrack.jetbrains.com/issue/KT-14743](https://youtrack.jetbrains.com/issue/KT-14743)
