gpt4 book ai didi

java - groovy 中 java 类的 metaClass 属性

转载 作者:搜寻专家 更新时间:2023-11-01 02:52:24 26 4
gpt4 key购买 nike

我正在学习 groovy,我有一个关于它的元编程工具的问题。据我了解,groovy 中的每个对象都实现了 groovy.lang.GroovyObject 接口(interface)(由 groovy 编译器隐式添加)。后一个接口(interface)包含 getMetaClass() 方法,因此我可以执行以下操作:

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

我不明白的是,像 java.lang.String 这样的 java 编译器编译的对象如何获得 metaClass 属性。这个属性是在通过 MetaClassRegistry 与 java 类相关联的实际 MetaClass 对象中定义的吗?

最佳答案

除了通过元对象协议(protocol)添加的方法外,Groovy 还使用 groovy.runtime.DefaultGroovyMethods 中定义的附加方法扩充了 JDK 中的类。类(class)。 List 和其他集合获取方法,如 eachcollect。相同的机制将 getMetaClass 方法添加到 java.lang.Object

关于java - groovy 中 java 类的 metaClass 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com