Groovy构造函数问题

时间:2011-05-17 16:12:29

标签: groovy

当我在单元测试期间执行下面类的构造函数时,我收到错误:

  

没有方法签名:静态   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要求这个方法是静态的?

1 个答案:

答案 0 :(得分:4)

这不一定也需要在java中保持静态吗?

您正试图在调用super()时调用实例方法,其中还没有实例...