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

Dio*_*cia 1 java arrays variadic-functions

我在超类上有以下方法:

public void method(Example... examples) {
        for (Example e : examples) {
            e.doSomething();
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是对子类的调用:

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

有没有更简单的方法来传递元素?类似于 super.method(examples[0 -> 10]) ?

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

谢谢你。

San*_*anj 5

你可以利用Arrays.copyOfRange(T[], int from, int to)方法

super.method(Arrays.copyOfRange(examples, 1, 11)); 
Run Code Online (Sandbox Code Playgroud)

下面是一个例子。

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));
    }
}
Run Code Online (Sandbox Code Playgroud)