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

关于kotlin - 如何从 Kotlin 中的字符串创建枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28548015/

相关文章:

android - 从 Activity Kotlin 中获取额外的字符串

java - 为什么 AudioManager 在 RingerMode 改变时崩溃?

android - Kotlin 在使用 RxJava2 时错误地推断类型可空性

Kotlin 警告 : Conditional branch result of type . .. 隐式转换为 Any?

java - Kotlin 数据类与公开类?

android - 如何使用 sqldelight 读取位于 Assets 中的数据库文件 - Android

java - Retrofit2,我如何转换具有不同对象名称但相同数据类型的响应

field - Kotlin - 如何使外部类的字段只读

generics - 如何处理从 Java 迁移到 Kotlin 的通用边界?

android - 为什么我需要在 Kotlin 中的 = 之前添加空格?