我可以在 kotlin 中使用字符串访问枚举 属性 吗?
Can I access enum property with string in kotlin?
我有这样一个区域枚举:
enum class Regions(val location:String){
REGION_1("London"),
}
有没有办法像下面的函数一样只用一个字符串来访问 region_1 的属性?
fun access(name:String){
return Regions.<modifed_name>.location
}
您可以使用 valueOf(value: string) 将字符串转换为枚举,然后使用位置
fun access(name:String): String = Regions.valueOf(name.uppercase()).location
enum class Regions(val location: String) {
REGION_1("London"),
REGION_2("Berlin"),
REGION_3("Pairs")
}
fun access(name:String): String {
return Regions.values().firstOrNull() { it.name == name }?.location ?: "location not found"
}
println(access("REGION")) // Output: location not found
println(access("REGION_2")) // Output: Berlin
我有这样一个区域枚举:
enum class Regions(val location:String){
REGION_1("London"),
}
有没有办法像下面的函数一样只用一个字符串来访问 region_1 的属性?
fun access(name:String){
return Regions.<modifed_name>.location
}
您可以使用 valueOf(value: string) 将字符串转换为枚举,然后使用位置
fun access(name:String): String = Regions.valueOf(name.uppercase()).location
enum class Regions(val location: String) {
REGION_1("London"),
REGION_2("Berlin"),
REGION_3("Pairs")
}
fun access(name:String): String {
return Regions.values().firstOrNull() { it.name == name }?.location ?: "location not found"
}
println(access("REGION")) // Output: location not found
println(access("REGION_2")) // Output: Berlin