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

groovy中java类的metaClass属性

发布时间:2020-12-14 16:22:41 所属栏目:大数据 来源:网络整理
导读:我正在学习groovy,我对其元编程设施有疑问.根据我的理解,groovy中的每个对象都实现了groovy.lang.GroovyObject接口(由groovy编译器隐式添加).后一个接口包含方法getMetaClass(),所以我可以执行以下操作: class MyGroovyClass{}def myGroovyClass = new MyGr
我正在学习groovy,我对其元编程设施有疑问.根据我的理解,groovy中的每个对象都实现了groovy.lang.GroovyObject接口(由groovy编译器隐式添加).后一个接口包含方法getMetaClass(),所以我可以执行以下操作:

class MyGroovyClass{
}
def myGroovyClass = new MyGroovyClass();
println myGroovyClass.metaClass.name

我不理解的是java编译器编译的对象如java.lang.String如何获取metaClass属性.这个属性是在实际的MetaClass对象中定义的,它通过MetaClassRegistry与java类相关联吗?

解决方法

除了通过元对象协议添加的方法之外,Groovy还使用 groovy.runtime.DefaultGroovyMethods类中定义的其他方法来扩充JDK中的类.列表和其他集合获取每个方法并收集.相同的机制将一个getMetaClass方法添加到java.lang.Object.

(编辑:李大同)

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

    推荐文章
      热点阅读