为什么是Groovy';s映射没有元类?

为什么是Groovy';s映射没有元类?,groovy,metaclass,Groovy,Metaclass,为什么Groovy的文字映射没有元类 // lists work as expected: aList = [] println aList.class // class java.util.ArrayList println aList.metaClass // gives the full blown metaclass // org.codehaus.groovy.runtime.HandleMetaClass@3de6696c //

为什么Groovy的文字映射没有元类

// lists work as expected:
aList = []
println aList.class // class java.util.ArrayList
println aList.metaClass  // gives the full blown metaclass
          //     org.codehaus.groovy.runtime.HandleMetaClass@3de6696c
          //     [groovy.lang.MetaClassImpl@3de6696c[class java.util.ArrayList]]

// string and numbers too:
println ''.metaClass
println 12.metaClass

// map does not:
aMap = [:]
println myMap.metaClass // gives null
println myMap.class // also gives null
通过以下方式进行测试:

Groovy Version: 1.8.6 JVM: 1.6.0_31 Vendor: Sun Microsystems Inc. OS: Linux
您必须使用:

[:].getMetaClass()
与您想要获取
地图的
相同,即:

[:].getClass()

这是因为在对贴图执行属性查找时,贴图返回由给定键表示的值。否则,在相关主题上就不能有键
元类

,有没有办法对实现map的类使用missingProperty?好的,我会发布另一个问题…看到了吗