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