¿Cómo creo una enumeración de una cadena en Kotlin?

Tengo una enumeración con algunas instancias Foo y Bar . Si tengo una cadena "Foo" , ¿cómo puedo crear una instancia de Foo enum a partir de eso? En C # sería Enum.Parse(...) , ¿hay un equivalente en Kotlin?

Actualmente, lo mejor que he encontrado es crear una fábrica que active todas las cadenas posibles, pero que es propensa a errores y funciona mal para enumeraciones grandes.

Las classs de Kotlin enum tienen un valor de function "estático" para get la input enum por cadena (como las enumeraciones de Java). Además, tienen values function "estáticos" para get todas las inputs enum. Ejemplo:

 enum class MyEnum { Foo Bar Baz } fun main(args : Array<String>) { println(MyEnum.valueOf("Foo") == MyEnum.Foo) println(MyEnum.valueOf("Bar") == MyEnum.Bar) println(MyEnum.values().toList()) } 
  • Kotlin marcó excepciones alternativa
  • Kotlin parse Hex String a Long
  • ¿Es posible build una aplicación web completa de Node.js usando Kotlin?
  • Animación consecutiva en TornadoFX?
  • ¿Cuáles son las ventajas de un object compañero sobre un object simple?
  • La aplicación se bloquea al intentar save el file con ObjectOutputStream
  • Kotlinx no puede resolver el símbolo "sintético"
  • javax.time en Kotlin
  • ¿Cuál es la diferencia entre el operador "como" y "es" en Kotlin?
  • El complemento kapt no funciona con gradle-script-kotlin
  • Eliminar ruptura en Kotlin cuando expresión