任何人都可以解释为什么在调用[:]时调用地图上的[:]。class会返回null.getClass()返回预期的结果Map。见下面的例子
1 -
["test",[test:"test"],23].each {
println it.class
}
class java.lang.String
null
class java.lang.Integer
2 -
["test",[test:"test"],23].each {
println it.getClass()
}
class java.lang.String
class java.util.LinkedHashMap
class java.lang.Integer
肯
答案 0 :(得分:11)
以下是答案
http://jira.codehaus.org/browse/GROOVY-1824
编辑 - 确定。我认为如果你有,那么Map的语义是这样的def m = [one:1, two:2]
你应该能够访问地图中的条目,如
m.one
换句话说,访问地图就像在地图对象上获取属性一样。如果
m.class
返回了类,它会破坏那些语义,因为'class'不是程序员添加到地图上的键。
这就是我收集的内容......