kotlin - 如何从 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())
}

https://stackoverflow.com/questions/28548015/

相关文章:

android - 延迟对 Kotlin 协程进行单元测试

android - 将支持库更新到 27.0.0 后,我的 fragment 中出现多个错误

generics - 如何在 Kotlin 中获取具体泛型参数的实际类型参数?

kotlin - 有什么作用?。在作业的左侧使用时在 Kotlin 中的意思是什么?

sorting - Kotlin 最后排序空值

java - 错误 :Kotlin: Unsupported plugin option: org.

kotlin - 在 Kotlin 中对可空整数使用 "greater than"、 "less t

java - 如何在 Kotlin 中初始化一个线程?

kotlin - 如何在 Kotlin 中引用外部类的实例?

android - 将 LiveData 与数据绑定(bind)一起使用