将数组元素传递给varargs

时间:2016-04-06 03:34:17

标签: java arrays variadic-functions

我在超类上有以下方法:

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 个答案:

答案 0 :(得分:3)

是的,您可以使用Arrays.copyOf(T[], int)之类的

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

答案 1 :(得分:2)

您可以使用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));
    }
}