Kotlin 提取地图<;字符串,对象>;从一行中包含键值属性的枚举?
我有一个带有传统键值属性的通用枚举实现:Kotlin 提取地图<;字符串,对象>;从一行中包含键值属性的枚举?,kotlin,Kotlin,我有一个带有传统键值属性的通用枚举实现: enum class FooEnum(val key : String, val value : Any) { FOO1("FOO_KEY", "FOO_VALUE"), FOO2("FOO_KEY2", 0); companion object { fun getKeyValuesMap(): Map<String, Any> { val defaults = HashMap
enum class FooEnum(val key : String, val value : Any) {
FOO1("FOO_KEY", "FOO_VALUE"),
FOO2("FOO_KEY2", 0);
companion object {
fun getKeyValuesMap(): Map<String, Any> {
val defaults = HashMap<String, Any>()
for (v in values())
defaults[v.key] = v.value
return defaults
}
}
}
enum类FooEnum(val键:字符串,val值:任意){
FOO1(“FOO_键”、“FOO_值”),
FOO2(“FOO_KEY2”,0);
伴星{
fun getKeyValuesMap():映射{
val defaults=HashMap()
对于(v in values())
默认值[v.key]=v.value
返回默认值
}
}
}
有没有更好的“Kotlin”方法来实现与getKeyValuesMap()相同的结果
我考虑使用<代码> Value/Cult>而不是<代码> Frave<代码>,其缺点是,理论上有人可以将结果投射到<代码> MutableMap < /代码>或<代码> HashMap < /C> >并使其发生突变。
fun getKeyValuesMap() = FooEnum.values().associate { it.key to it.value }
我想使用<代码> Value/Cult>而不是<代码> Frave<代码>,其缺点是理论上有人可以将结果投射到<代码> MutableMap < /代码>或<代码> HashMap < /代码>并使其发生突变。
我做了两个答案的混合:Valm map=PuxEnUn.Values()。这比我的答案好。我混合了两个答案:val map=FooEnum.values().associate{it.key to it.value}是的,这比我的答案好。fun getKeyValuesMap() = FooEnum.values().associate { it.key to it.value }