2

我希望能够根据此处使用委托元类定义的约定将我的元类放在包 groovy.runtime.metaclass 中。我已经安排MyClassMetaClassgroovy.runtime.metaclass.mypackage.具体课程mypackage.MyClass{}。不幸的是,调用MyClass{}不会被MyClassMetaClass{}. 也许这与 grails 的初始化方式有关..?

4

1 回答 1

0

可以通过更改BootStrap.groovy在 grails 项目中使用委托元类。

import org.codehaus.groovy.runtime.InvokerHelper
class BootStrap {

    def init = { servletContext ->
        def myMetaClass = new MyClassMetaClass(MyClass.class)
        InvokerHelper.metaRegistry.setMetaClass(MyClass.class, myMetaClass)
    }
    def destroy = {
    }
}

当然,这与实现问题中提到的委托元类不同。

于 2012-08-01T13:27:13.830 回答