次のコードで何か奇妙なことが起こっています。私は正常にマップを作成し、出力に示されているように私はキーと値を持っていますが、キーで値を取得することはできません。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'というキータイプを簡単に見つけることができます。地図キーとしてGStringを使用している場合は停止します。 Googleには、なぜ彼らが問題なのか、といった多くの議論がありました。 http://www.groovy-lang.org/mailing-lists.html#nabble-td4511883 –