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.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |