提问人:Pouria 提问时间:2/4/2022 更新时间:2/4/2022 访问量:491
将多个参数传递给具有 Object 类型的 varargs 的方法
Pass multiple args to a method with varargs of Object type
问:
在 Java 中,我正在尝试使用库中的方法,该库接受 Object 类型的 varargs:
static Result process(Object head, Object... tail)
在我的代码中,参数的数量在运行时是已知的,所以我尝试使用数组来收集所有参数并将它们传递给:process(..)
T[] items = ...;
Result r = process(items);
但是,由于 Array 本身是一个 Object,因此调用不会解包数组项,并且将整个数组视为单个参数。
知道如何将多个参数装箱并传递给具有 Object 类型的 varargs 的方法吗?
答:
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 的“头”部分。 它有效。
评论