2016-04-06 12 views
0

を可変引数する配列要素を渡す:私はスーパークラスの次のメソッド持って

public void method(Example... examples) { 
     for (Example e : examples) { 
      e.doSomething(); 
     } 
    } 

を、これはサブクラスの呼び出しです:

super.method(examples[0], examples[1], examples[2], examples[3], examples[4], examples[5], examples[6], examples[7], examples[8], examples[9], examples[10]); 

する要素を渡すための簡単な方法はありますか? super.methodのようなもの(例[0 - > 10])?

配列全体(super.method(examples))をメソッドに渡すことができません。

ありがとうございます。

+2

ようArrays.copyOf(T[], int)を使用することができますか?それは長すぎますか? –

+0

なぜあなたはvarargsを必要としない場合でも、この2次元配列を試してみないでください。また、データを渡す方法がないことも知っています。 – Alok

+0

@PaulBoddingtonスーパーメソッドを使用してテーブルのセルを揃えます。時には、セル1→3と8を左に、4-> 7と9→11のように配置する必要があります。 –

答えて

1

あなたは、以下の例ではあるArrays.copyOfRange(T[], int from, int to)方法

super.method(Arrays.copyOfRange(examples, 1, 11)); 

活用することができます。あなたは全体の配列を渡すことができないのはなぜ

package com.foo; 

import java.util.Arrays; 

public class TestVarArgs { 

    public void test(String...strings){ 

    } 
    public static void main(String[] args) { 
     new TestVarArgs().test(Arrays.copyOfRange(args, 1, 11)); 
    } 
} 
+0

パーフェクト!まさに私が望んでいたもの。ありがとうございました。 –

3

はい、あなたは

super.method(Arrays.copyOf(examples, 11)); 
+0

配列の先頭が[0]でないかもしれないことを忘れてしまったので、私はそれを設定する方法が必要でした。サンジの答えはそれを持っています。あなたの答えはあまりにも質問に答える、と思った。ありがとうございました。 –

+0

@DiogoGarcia開始インデックスと終了インデックスを(配列全体と共に)メソッドに渡すほうが、(とにかく効率的に)より良いかもしれません。 –

+0

これにより、サブクラスでもよりクリーンになります。ありがとうございました! –

関連する問題