我似乎無法使用Closure作爲指定內聯的超類構造函數的參數。使用Closure作爲超類構造函數的參數
class Base {
def c
Base(c) {
this.c = c
}
void callMyClosure() {
c()
}
}
class Upper extends Base {
Upper() {
super({ println 'called' })
}
}
u = new Upper()
u.callMyClosure()
編譯失敗的消息Constructor call must be the first statement in a constructor.
。
我意識到這是一個有點奇怪的用例,我可以暫時圍繞它進行設計。但我很感興趣,這是可以預料的嗎?或者我得到的語法不正確?
這就是我期待的,但只是找不到任何文檔。我還發現使用在那裏初始化的Map的相同行爲。 – 2010-09-27 21:24:16
出於興趣,新的Closure語法是什麼? Closure類本身是抽象的。 – 2010-09-27 21:27:38
我做了一些嘗試,找出奇怪的語法(在將它用於構造函數之前實例化閉包)..從我的理解看來,它是抽象的,因爲您通常將其子類化並實現作爲有效主體的「doCall」方法關閉 – Jack 2010-09-27 23:26:18