我正在学习Groovy,对其元编程功能有疑问。据我所知,Groovy中的每个对象都实现了groovy.lang.GroovyObject接口(由Groovy编译器隐式添加)。后者接口包含getMetaClass()方法,因此我可以执行以下操作:
class MyGroovyClass{
}
def myGroovyClass = new MyGroovyClass();
println myGroovyClass.metaClass.name
我不明白的是,像java.lang.String这样的对象是如何获得metaClass属性的。这个属性是在MetaClassRegistry通过关联MetaClass对象与java类定义的吗?