将数组元素传递给可变参数
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));
我在超类上有以下方法:
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));