Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,是否可以将列表作为具有无限参数(…)的函数的参数发布?_Java_Variadic Functions - Fatal编程技术网

在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()]));