我有一個java對象的實例,比方說一個名爲myList的ArrayList實例。Groovy - 覆蓋單個實例的invokeMethod
對於這個特定的實例,我想覆蓋invokeMethod方法(稱爲)記錄該方法被調用。
我可以做這樣的事情:
myList.metaclass.invokeMethod { name, args ->
println "Called ${name} with ${args}"
whatGoesHere.invokeMethod(name, args)
}
通知關閉2號線 - 我怎麼能叫原invokeMethod中的方法?我正確地處理這個問題嗎?
類似這樣的回答:找出一個方法的在Groovy名稱](http://stackoverflow.com/a/ 10113215/462015) – 2012-04-12 15:27:59
Arturo,這個答案適用於整個班級,而不是單個實例。 – 2012-04-12 15:40:02
我們可以用'ExpandoMetaClass'屬性以相同的方式向實例或類添加新行爲。 – 2012-04-12 16:32:48