我的目標是通過綁定執行groovy腳本,其中函數是預定義的,攔截器註銷執行時間和結束評估結果。我的示例代碼是:在groovy腳本執行中攔截對綁定對象的閉包
binding.login = { ->
binding.event.appname=='login'
} def gse = new GroovyScriptEngine("src/main/resources/rules")
gse.run('DSL.groovy', binding)
在我的腳本中我正在調用登錄方法。一切工作,除了我不能提供如何使用MetaClass攔截它。我的嘗試像
Binding.metaClass.invokeMethod = { String name, args ->
println ("Call to $name intercepted... ")
沒有工作。後來我發現閉包是綁定的屬性,而不是方法。 有沒有什麼方法可以在這種情況下執行攔截以及如何執行攔截?元類的正確對象是什麼?注意,我的閉包在另一個嵌套閉包中執行。 感謝
你試過* getProperty *嗎? http://groovy.codehaus.org/Using+invokeMethod+and+getProperty – Raphael