在下面的代码中发生了一些奇怪的事情。我成功地创建了一个映射,如输出中所示,我有键和值,但无法使用键检索值。Groovy Grails - 通过键从地图检索值的问题
见代码及以下的输出:
class HomeController {
def index() {
List gs=Gizmo.getAll()
def gizmoList= gs.collectEntries {
[(it.id): (it.name)]
}
println "item 2 is ${gizmoList['2']}"
println "item 2 is ${gizmoList[2]}"
println "keyset is " + gizmoList.keySet().toList().toString()
println "values are" + gizmoList.values().toList().toString()
[myList: gizmoList ]
}
}
控制台输出为:
item 2 is null
item 2 is null
keyset is [1, 2, 3]
values are[flange, nork, prule]
不知怎的,我想也许键GStringImpl什么的,但我认为把括号周围会强制为普通字符串。
'Gizmo'是域类,对吧? –
查找关键字类型很简单 - 'println gizmoList.keySet()*。getClass()*。name'。如果您使用GStrings作为地图键停止。谷歌它已经有很多关于他们为什么会成为问题的讨论,例如http://www.groovy-lang.org/mailing-lists.html#nabble-td4511883 –