我有一个有趣的问题:我无法访问我的hashmap键。
我有以下hashmap:
{a=Retrieve User Account call failed, b=This user has multiple accounts}
当我执行以下任何操作时,我会得到空白变量:
"${myMap.get('a')}"
"${myMap['a']}"
"${myMap.a}"
我从以下网址获得错误值:
"${myMap.containsKey('a')}"
"${myMap.keySet().contains('a')}"
但是当我这样做时我才会成真:
"${myMap.keySet()[1] == 'a'}"
有什么问题?如何在hashmap键或keySet上调用contains
以查明散列/列表中是否有“a”?
如果它有帮助,我使用groovy 2.3.0-rc-2插件用于Groovy / Grails工具套件和grails 2.4.1
答案 0 :(得分:1)
这可能是一个重复的问题,但无论如何我都会回答它。你在Groovy中的语法有点偏。
见这里:http://groovy.codehaus.org/Collections
他们的例子:
def map = [name:"Gromit", likes:"cheese", id:1234]
assert map.get("name") == "Gromit"
assert map.get("id") == 1234
assert map["name"] == "Gromit"
assert map['id'] == 1234
assert map instanceof java.util.Map
def emptyMap = [:]
assert emptyMap.size() == 0
emptyMap.put("foo", 5)
assert emptyMap.size() == 1
assert emptyMap.get("foo") == 5
你的地图:
def map = [a:"Retrieve User Account call failed",
b:"This user has multiple accounts"]
assert map.get("a") == "Retrieve User Account call failed"
// also
assert map.a == "Retrieve User Account call failed"