【发布时间】:2021-04-02 06:06:35
【问题描述】:
我正在尝试在 kotlin 中找到正确的语法来初始化“Map>>”。我对 kotlin 有点陌生。我在我的类中初始化了变量:
var jitterMs: Double = 0.0
我尝试初始化的方式是这样的:
val bandMap: Map<Int,<List<List<String>>>> = emptyMap()
它给了我一个错误,即需要一个正确的 getter 或 setter,我认为这是因为它不明白我想要做什么。这个语法有什么问题?
谢谢,
编辑:正如 Tenfour 所指出的,我实际上想要一个可变地图。这就是我现在的错误,说存在类型错误:
val bandMap: MutableMap<Int,List<List<String>>> = emptyMap()
【问题讨论】:
-
你有一组额外的
<>包裹在你的外部列表周围。此外,由于这是一个val,因此您将无法使用只读 Map 而不是 MutableMap 做很多事情。 -
谢谢,不再有语法错误。我想要一个 MutableMap,所以我改变了它,谢谢。我现在收到 emptymap() 的错误: val bandMap: MutableMap
>> = emptyMap() -
您需要使用
mutableMapOf()而不是emptyMap()。emptyMap返回一个只读映射。