解决Groovy映射类
问题描述:
任何人都可以解释为什么在调用[:]。getClass()时返回预期结果Map的时候调用映射[:]。见下文解决Groovy映射类
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
肯
答
这里例如是答案
http://jira.codehaus.org/browse/GROOVY-1824
编辑 - 肯定。我认为地图的语义是这样的,如果你有
def m = [one:1, two:2]
你都应该能够访问该条目在地图上像
m.one
换句话说
,进入到地图就像在地图对象上获取属性一样。如果
m.class
返回该类,它会破坏这些语义,因为'class'不是程序员添加到映射的键。
那就是我收集的....
很好,他的回答虽然很粗鲁,但你能用简单的英语吗? – ken 2010-11-06 15:11:37
@ken编辑我的答案与我的解释 – hvgotcodes 2010-11-06 15:14:26
非常清楚的解释老兄,这应该是在JIRA问题上的答案,而不是。 – ken 2010-11-06 15:51:49