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 }