示例:通过字符串值查找枚举
enum class TextStyle {
BOLD, ITALICS, UNDERLINE, STRIKETHROUGH
}
fun main(args: Array<String>) {
val style = "Bold"
val textStyle = TextStyle.valueOf(style.toUpperCase())
println(textStyle)
}
运行程序后,输出将是
BOLD
在上面的程序中,我们有一个名为 TextStyle 的枚举,它表示块文本可以拥有的不同样式,即粗体、斜体、下划线、删除线。
我们还有一个名为 style 的字符串,其中包含我们想要的当前样式。但是,它不是全大写的。
然后,我们使用 TextStyle 枚举的 valueOf() 方法来传递样式并获取所需的枚举值。
由于 valueOf() 接受区分大小写的字符串值,因此我们必须使用 toUpperCase() 方法将给定字符串转换为大写。
如果我们取而代之使用
TextStyle.valueOf(style)
程序将抛出异常 No enum constant EnumString.TextStyle.Bold
。
这是等效的 Java 代码:Java 程序通过字符串值查找枚举。