2012-03-18 7 views
3

n要素から配列を開始するにはgroovyでこれがどのように可能なのでしょうか。スニペットでGroovy動的引数

ルック:

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) 

} 

あなたはここで動的なメソッド呼び出しを行っています見ての通り。最初の2つの引数は、いくつかの設定とメソッドの名前として使用され、その他はメソッドのparamertsとして使用したいものです。

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

編集: は、どのように私はこのような何かを行うことができますネイティブのグルーヴィーなJava構文にpossilbeない場合はそれを行います。

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

'はSystem.exit(1)'無意味であること。 JavaはCではありません – Esko

答えて

3

args使用できるの先頭から項目を削除するには方法はdrop()です。オリジナルの引数リストは変更されません。

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

その他のオプションを、あなたがしようとしているように、N個の要素からアクセスすることです:

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

+1の範囲表記。それはきちんとしており、> = 2の値を持っていることはすでに分かっています。 – David

関連する問題