将多个参数传递给具有 Object 类型的 varargs 的方法

Pass multiple args to a method with varargs of Object type

提问人:Pouria 提问时间:2/4/2022 更新时间:2/4/2022 访问量:491

问:

在 Java 中,我正在尝试使用库中的方法,该库接受 Object 类型的 varargs:

static Result process(Object head, Object... tail)

在我的代码中,参数的数量在运行时是已知的,所以我尝试使用数组来收集所有参数并将它们传递给:process(..)

T[] items = ...;
Result r = process(items);

但是,由于 Array 本身是一个 Object,因此调用不会解包数组项,并且将整个数组视为单个参数。

知道如何将多个参数装箱并传递给具有 Object 类型的 varargs 的方法吗?

Java 数组 方法 参数传递

评论

0赞 Toerktumlare 2/4/2022
在 Java 中,这是不可能的

答:

2赞 Oyster773 2/4/2022 #1

您有一个非可变参数。head

这意味着您至少需要传递给该方法,并在之后使用可选的可变参数。head

因此,您应该调用:

Object[] allArgs = new Object[]{object1, object2, object3};
Object[] varags = Arrays.copyOfRange(allArgs, 1, allArgs.length);
process(allArgs[0], varags)

评论

0赞 Pouria 2/4/2022
谢谢,我错过了非 var 的“头”部分。 它有效。