由于每个 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()
}
}
但它似乎不起作用,我从未在控制台中看到日志消息
我的第二个问题是:GroovyInterceptable 是 GroovyObject 的子接口,我直接覆盖 GroovyObject 的 invokeMethod 和我实现 GroovyInterceptable 接口的 invokeMethod 有什么区别?
谢谢