Groovy动态参数

时间:2012-03-18 12:34:01

标签: groovy

我想知道如何在groovy中从n元素开始一个数组。

看一下片段:

static void main(args){

    if (args.length < 2){
        println "Not enough parameters"
        return;
    }

    def tools = new BoTools(args[0])
    def action = args[1]

    tools."$action"(*args)

    System.exit(1)

}

正如您所看到的,这里是一个动态方法调用。前两个参数被视为一些配置和方法名称,其他我想用作方法参数。 那我怎么能这样做:

tools."$action"(*(args+2))

编辑:如果不能在原生的常规Java语法中做到这一点:

def newArgs = Arrays.copyOfRange(args,2,args.length);
tools."$action"(*newArgs)

1 个答案:

答案 0 :(得分:3)

要从args的开头删除项目,您可以使用drop()方法。原始的args列表没有改变:

tools."$action"(*args.drop(2))

其他选项,就像您尝试的那样是从N元素访问:

tools."$action"(*args[2..-1])