2

すべての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 を実装することの違いは何ですか?

ありがとう

4

1 に答える 1