如何从Kotlin中的字符串创建一个枚举?

我有一些枚举FooBar 。 如果我有一个字符串"Foo" ,我怎么能实例化一个Foo枚举? 在C#中它将是Enum.Parse(...) ,在Kotlin中是否有相当的?

目前,我发现的最好的方法是创建一个可以切换所有可能字符串的工厂,但是这样做很容易出错,而且对于大量的枚举来说性能很差。

Kotlin枚举类具有“静态”函数valueOf通过字符串(如Java枚举)获取枚举输入。 另外他们有“静态”函数values来获得所有的枚举条目。 例:

 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()) }