0
當下面時我的單元測試執行的類的構造函數,我得到的錯誤:Groovy的構造問題
No signature of method: static grails.plugin.flashhelper.args.AnonymousArgumentsResolver.getDefaultMessages() is applicable for argument types: ([Ljava.lang.Object;) values: [[message number 1]]
class AnonymousArgumentsResolver extends AbstractArgumentsResolver {
private final args
AnonymousArgumentsResolver(methodArgs) {
super(methodArgs[0], getDefaultMessages(methodArgs))
this.args = methodArgs
}
private final getDefaultMessages(methodArgs) {
if (methodArgs.size() > 1) {
methodArgs[1..-1].find { it instanceof String || it instanceof List }
}
}
}
如果我改變getDefaultMessages
是一個static
方法,一切工作正常。我不知道爲什麼Groovy要求這種方法是靜態的?
所以這只是一個問題,因爲呼叫內'超()',不是因爲它的在構造函數中? 'super()'必須成爲構造函數的第一行的限制是否也適用於Groovy? – 2011-05-17 16:23:16
是的,在調用super()之後,你應該可以輕鬆地調用它,並且afaik,groovy對構造函數對super()的調用仍然存在「第一行」限制。 – 2011-05-17 16:26:37