解析Groovy Map类

时间:2010-11-06 14:37:43

标签: grails groovy

任何人都可以解释为什么在调用[:]时调用地图上的[:]。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

1 个答案:

答案 0 :(得分:11)

以下是答案

http://jira.codehaus.org/browse/GROOVY-1824

编辑 - 确定。我认为如果你有

,那么Map的语义是这样的
def m = [one:1, two:2]

你应该能够访问地图中的条目,如

m.one
换句话说,访问地图就像在地图对象上获取属性一样。如果

m.class 

返回了类,它会破坏那些语义,因为'class'不是程序员添加到地图上的键。

这就是我收集的内容......