Groovy Grails - 按键从Map中检索值的问题

时间:2016-10-11 05:05:19

标签: grails groovy

以下代码中发生了奇怪的事情。我成功创建了一个地图,并且如输出中所示我有键和值,但我无法使用键检索值。

请参阅下面的代码和输出:

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或者其他东西,但是我认为把parens放在一边就会强制使用简单的字符串。

2 个答案:

答案 0 :(得分:1)

在Grails中,idLong,因此找不到您的StringInteger个键。

此代码段有效:

assert "item 2  is ${gizmoList[2l]}" == "item 2  is nork"

答案 1 :(得分:0)

嗯不确定但是当我在groovy web控制台上尝试类似时,它工作正常。见下文:

Similar code

因此,对我来说,无论是grails还是你做错了什么都看起来有些不对劲。 请再试一次,检查是否有任何错误。