首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Groovy没有metaClass?

为什么Groovy没有metaClass?
EN

Stack Overflow用户
提问于 2013-04-17 21:14:44
回答 1查看 791关注 0票数 7

为什么Groovy的文字映射没有metaClass?

代码语言:javascript
复制
// 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

测试时使用:

代码语言:javascript
复制
Groovy Version: 1.8.6 JVM: 1.6.0_31 Vendor: Sun Microsystems Inc. OS: Linux
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-17 21:17:01

你必须使用:

代码语言:javascript
复制
[:].getMetaClass()

这和你想获取Mapclass是一样的,比如:

代码语言:javascript
复制
[:].getClass()

这是因为当您在Map上执行属性查找时,Map会返回由给定键表示的值。否则,您不可能拥有密钥classmetaClass

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16061053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档