使用kotlin中的values()和valueOf迭代枚举值

这里是一个新手。 任何人都可以举一个例子迭代枚举值和valueOf方法?

这是我的枚举类

enum class Gender { Female, Male } 

我知道我们可以得到这样的价值

 Gender.Female 

但是我想迭代并显示性别的所有值。 我们怎样才能做到这一点? Anyhelp可以感激

你可以使用像这样的values

 val genders = Gender.values() 

既然Kotlin 1.1也有辅助方法可用:

 val genders = enumValues<Gender>() 

有了上面的代码,你可以很容易地迭代所有的值:

 enumValues<Gender>().forEach { println(it.name) } 

要将枚举名称映射为枚举值,请使用valueOf / enumValueOf如下所示:

  val male = Gender.valueOf("Male") val female = enumValueOf<Gender>("Female") 

你得到[LGender;@2f0e140b或类似于打印Gender.values()的输出,因为你正在打印数组引用本身,并且数组没有象列表那样的默认toString实现。

打印所有值最简单的方法是迭代该数组,如下所示:

 Gender.values().forEach { println(it) } 

或者如果你喜欢方法引用:

 Gender.values().forEach(::println) 

你也可以使用标准库中的joinToString来显示单个格式化字符串中的所有值(甚至可以选择前缀,后缀,分隔符等):

 println(Gender.values().joinToString()) // Female, Male