为什么Groovy的文字映射没有metaClass?
// 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发布于 2013-04-17 21:17:01
你必须使用:
[:].getMetaClass()这和你想获取Map的class是一样的,比如:
[:].getClass()这是因为当您在Map上执行属性查找时,Map会返回由给定键表示的值。否则,您不可能拥有密钥class或metaClass
https://stackoverflow.com/questions/16061053
复制相似问题