在下面的代碼中發生了一些奇怪的事情。我成功地創建了一個映射,如輸出中所示,我有鍵和值,但無法使用鍵檢索值。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 –