如何将ArrayList传递给可变参数方法参数?

基本上我有一个位置的ArrayList:

ArrayList<WorldLocation> locations = new ArrayList<WorldLocation>(); 

在这个下面我调用下面的方法:

 .getMap(); 

getMap()方法中的参数是:

 getMap(WorldLocation... locations) 

我遇到的问题是我不知道如何将整个locations列表传递到该方法。

我试过了

 .getMap(locations.toArray()) 

但getMap不接受,因为它不接受Objects []。

现在,如果我使用

 .getMap(locations.get(0)); 

它会工作完美…但我需要以某种方式通过所有的位置…我当然可以继续添加locations.get(1), locations.get(2)等,但arrays的大小变化。 我只是不使用ArrayList的整个概念

最简单的方法是什么? 我觉得我现在只是没有想到。

使用toArray(T[] arr)方法。

 .getMap(locations.toArray(new WorldLocation[locations.size()])) 

toArray(new WorldLocation[0])也可以,但是你会无故分配一个零长度的数组。


这是一个完整的例子:

 public static void method(String... strs) { for (String s : strs) System.out.println(s); } ... List<String> strs = new ArrayList<String>(); strs.add("hello"); strs.add("wordld"); method(strs.toArray(new String[strs.size()])); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ... 

这篇文章在这里被重写为一篇文章。