我有一些關於groovy元編程中的委託的noob問題。Grails和Groovy metaProgramming代表
與這行代碼
grailsApplication.domainClasses.each { gdc ->
def domClass = gdc.clazz
domClass.metaClass.invokeMethod{name,args ->
//some line of code
def result = invokeMethod(delegate,args)
}
}
是什麼的代表,名稱和args在這裏的內容嗎? 一般來說,代表是什麼,代表什麼類型的內容?
任何幫助和解釋將不勝感激
感謝您的回覆Burt。但是有些東西仍然讓我誤以爲是noob:'domClass.metaClass.invokeMethod {String name,args - >}所以如果我調用'this',意味着我在'.invokeMethod'中調用閉包,如果我調用'delegate',意味着我自己調用了'domClass'? – 2012-03-07 04:33:40
'this'是定義閉包的實例。在通常位於BootStrap.groovy中的Grails中,或插件描述符。但是在調用方法時,這在運行時沒有用處。 'delegate'是閉包被調用的實例,就好像它是一個真正的方法,所以它是最接近'this'的那個。 – 2012-03-07 06:09:06
感謝您的解釋,Burt。現在一切都清楚了。 – 2012-03-07 06:51:07