将数组元素传递给可变参数

Passing array elements to varargs

我在超类上有以下方法:

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(examples[0 -> 10]) ?

这样的东西

我无法将整个数组(super.method(示例))传递给方法。

谢谢。

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

是的,你可以像

一样使用Arrays.copyOf(T[], int)
super.method(Arrays.copyOf(examples, 11));