すべてのGroovyオブジェクトはGroovyObjectインターフェースを実装しているので、invokeMethod()をオーバーライドしようとします。ここに私のテストがあります:
class MyGrrovyClass {
static test(){
println 'i am in test'
}
Object invokeMethod(String name, Object args){
log.info('method intercepted')
def metaClass = InvokerHelper.getMetaClass(this)
def result = metaClass.invokeMethod(this, name, args)
return result
}
public static void main(String[] args) {
test()
}
}
しかし、うまくいかないようです。コンソールにログメッセージを見たことがありません
私の 2 番目の質問は次のとおりです。GroovyInterceptable は GroovyObject のサブインターフェイスです。GroovyObject の invokeMethod を直接オーバーライドすることと、GroovyInterceptable インターフェイスの invokeMethod を実装することの違いは何ですか?
ありがとう