使用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