当我在单元测试期间执行下面类的构造函数时,我收到错误:
没有方法签名:静态 grails.plugin.flashhelper.args.AnonymousArgumentsResolver.getDefaultMessages() 适用于参数类型: ([Ljava.lang.Object;)值: [[消息号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要求这个方法是静态的?
答案 0 :(得分:4)
这不一定也需要在java中保持静态吗?
您正试图在调用super()时调用实例方法,其中还没有实例...