我有一个枚举,其中包含一些实例 Foo
和 Bar
。如果我有一个字符串 "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())
}
关于kotlin - 如何从 Kotlin 中的字符串创建枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28548015/