在Kotlin中访问地图内的值

时间:2018-05-01 17:17:39

标签: java dictionary hashmap kotlin key-value

我在访问此动物对象内部构建的词典/地图中的值时遇到了困难:

object Animals {
var animalInfo = mutableMapOf<String,Any>()
init {
    animalInfo["Animal"] = mutableListOf("description" to "Large Mammal", "name" to "Elephant", "highlights" to arrayListOf("Long Trunk", "Flappy Ears", "Ivory Tusks"))
    }
}    

Swift是我的第一语言,我试图访问这样的值,但没有使用可选的绑定:

 val dataDict = Animals.animalInfo
        val animal = dataDict["Animal"]
        println(animal["description"])
        println(animal["name"])
        println(animal["highLights"])

所有println行都有一个未解决的引用错误。如何正确访问mutableMapOf()中的值?

1 个答案:

答案 0 :(得分:1)

更改此行:

var animalInfo = mutableMapOf<String,Any>()

var animalInfo = mutableMapOf<String,MutableMap<String, out Any>>()

并更改

val module = dataDict["Animal"]

val module = dataDict["Animal"]!!

并将mutableListOf更改为mutableMapOf应解决此问题(总共3次更改)。