我期待着一些字符串值,我需要找到,如果我有相应的枚举值定义.
我的枚举值是
enum class Status {
Created, Updated
}
我想在这个函数中实现的是判断这些枚举值是否匹配,忽略大小写
private fun getStatus(
value: String
): Status {
....
}
如果没有匹配,那么我想抛出一个错误.
非常感谢您的帮助!!
我期待着一些字符串值,我需要找到,如果我有相应的枚举值定义.
我的枚举值是
enum class Status {
Created, Updated
}
我想在这个函数中实现的是判断这些枚举值是否匹配,忽略大小写
private fun getStatus(
value: String
): Status {
....
}
如果没有匹配,那么我想抛出一个错误.
非常感谢您的帮助!!
Enum.valueOf
或enumValueOf<Enum>
等枚举的内置函数区分大小写,但您可以轻松编写自己的不区分大小写版本:
inline fun <reified T : Enum<T>> enumValueOfIgnoreCase(key: String): T =
enumValues<T>().find { it.name.equals(key, ignoreCase = true) }
?: throw IllegalArgumentException("no value for key $key")
然后,您可以编写以下内容以获得Status
元素Created
:
val status = enumValueOfIgnoreCase<Status>("created")