我希望能够根据此处使用委托元类定义的约定将我的元类放在包 groovy.runtime.metaclass 中。我已经安排MyClassMetaClass
了groovy.runtime.metaclass.mypackage.
具体课程mypackage.MyClass{}
。不幸的是,调用MyClass{}
不会被MyClassMetaClass{}
. 也许这与 grails 的初始化方式有关..?
问问题
514 次
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 回答