2

委譲メタクラスを使用して、ここで定義されている規則に従って、メタクラスをパッケージ groovy.runtime.metaclass に配置できるようにしたいと考えています。具体的なクラスに配置MyClassMetaClassしました。残念ながら、 への呼び出しは によってインターセプトされません。おそらく、これは grails の初期化方法に関連しています..? groovy.runtime.metaclass.mypackage.mypackage.MyClass{}MyClass{}MyClassMetaClass{}

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 に答える