我是Groovy编程语言的新手,我试图充分理解它的动态特性和功能。我所知道的是,在Groovy中以其最基本的形式创建的每个类看起来都是这样的(实现GroovyObject和扩展java对象)。
public class Foo implements groovy.lang.GroovyObject extends java.lang.Object { }Groovy对象还包含扩展MetaClass的MetaObjectProtocol。正是这种类层次结构提供了Groovy的一些动态功能。这包括自我反省(getProperties,getMethods)或拦截方法(invokeMethod,missingMethod)的能力。
我还了解Groovy中可用的不同类型的元编程。这些功能使您能够在运行时或编译时添加或重写功能。
现在,我们可以找到这个问题的要点了。当某个人或一本书提到Groovy中的"Metaobject“时,我们谈论的是一个特定的类或一组东西。我很难抓住一些没有被定义或固定在石头上的东西。我的一本书把它定义为
协议是规则和格式的集合。元对象协议(,MOP)是Groovy运行时系统如何处理方法调用请求以及如何控制中间层的规则集合。协议的“格式”由各自的API定义,
我还有Venkat的编程Groovy 2书,其中有一个图表定义了这个方法查找过程。因此,我猜想这是我们请求方法的规则(至少POGO,我知道POJO是不同的)。

无论如何,我认为我走的是正确的道路,但我觉得我仍然错过了那个“啊哈”的时刻。有人能告诉我我错过了什么吗?或者至少告诉我我在这里的胡言乱语是有道理的:“谢谢!
发布于 2013-10-30 01:29:00
这就是答案。元对象协议(,MOP)是Groovy运行时系统如何处理方法调用请求以及如何控制中间层的规则集合。一旦您了解了方法调用的过程,以及它附带的API,我认为这一切都是有意义的。我只是想太多了。谢谢!!
https://stackoverflow.com/questions/19608035
复制相似问题