加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

为什么Groovy的地图没有metaClass?

发布时间:2020-12-14 16:32:43 所属栏目:大数据 来源:网络整理
导读:为什么Groovy的文字地图没有metaClass? // lists work as expected:aList = []println aList.class // class java.util.ArrayListprintln aList.metaClass // gives the full blown metaclass // org.codehaus.groovy.runtime.HandleMetaClass@3de6696c //
为什么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

解决方法

你必须使用:

[:].getMetaClass()

就像你想得到一个Map的类一样,即:

[:].getClass()

这是因为当您对它们执行属性查找时,Maps会返回给定键表示的值.否则你不能拥有key class或metaClass

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读