将多个参数传递给具有对象类型可变参数的方法
Pass multiple args to a method with varargs of Object type
在 Java 中,我正在尝试使用接受对象类型可变参数的库中的方法:
static Result process(Object head, Object... tail)
在我的代码中,参数的数量在 运行 时已知,所以我尝试使用数组收集所有参数并将它们传递给 process(..)
:
T[] items = ...;
Result r = process(items);
但是,由于 Array 本身是一个对象,调用不会解包数组项,整个数组被视为单个参数。
知道如何将多个参数装箱并传递给带有 Object 类型可变参数的方法吗?
您有一个 non-variadic 参数 head
。
这意味着您需要 至少 head
传递给该方法,之后是可选的可变参数。
因此,您应该调用:
Object[] allArgs = new Object[]{object1, object2, object3};
Object[] varags = Arrays.copyOfRange(allArgs, 1, allArgs.length);
process(allArgs[0], varags)
在 Java 中,我正在尝试使用接受对象类型可变参数的库中的方法:
static Result process(Object head, Object... tail)
在我的代码中,参数的数量在 运行 时已知,所以我尝试使用数组收集所有参数并将它们传递给 process(..)
:
T[] items = ...;
Result r = process(items);
但是,由于 Array 本身是一个对象,调用不会解包数组项,整个数组被视为单个参数。
知道如何将多个参数装箱并传递给带有 Object 类型可变参数的方法吗?
您有一个 non-variadic 参数 head
。
这意味着您需要 至少 head
传递给该方法,之后是可选的可变参数。
因此,您应该调用:
Object[] allArgs = new Object[]{object1, object2, object3};
Object[] varags = Arrays.copyOfRange(allArgs, 1, allArgs.length);
process(allArgs[0], varags)