在Java中,是否可以将列表作为具有无限参数(…)的函数的参数发布?
假设我有一个第三方库,它公开了一个接受无限参数的函数:在Java中,是否可以将列表作为具有无限参数(…)的函数的参数发布?,java,variadic-functions,Java,Variadic Functions,假设我有一个第三方库,它公开了一个接受无限参数的函数: void foo(Bar ... bar); 我不能更改此库或为该库创建新函数,我只能使用它们公开的内容。接下来,我有一个要使用的参数列表: List<Bar> bars = new ArrayList<Bar>(); // list initialization by some complex algorithm. 但是我需要尽可能减少对foo的调用次数,所以我试图一次发布一个完整的列表。这样的事情在Java中
void foo(Bar ... bar);
我不能更改此库或为该库创建新函数,我只能使用它们公开的内容。接下来,我有一个要使用的参数列表:
List<Bar> bars = new ArrayList<Bar>();
// list initialization by some complex algorithm.
但是我需要尽可能减少对
foo
的调用次数,所以我试图一次发布一个完整的列表。这样的事情在Java中是可能的吗 因为它是一个可变参数(或)参数,所以是;它可以与阵列互换。您只需要创建数组
使用,这很简单:
foo(bar.toArray(new Bar[bar.size()]));
ArrayList(条形)
?将列表
,条
转换为数组,例如,条到数组(新条[bar.size()])
对不起,我不询问如何初始化列表,列表已经创建。我需要将此列表传递给foo函数。
foo(bar.toArray(new Bar[bar.size()]));