如何将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()])); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...
这篇文章在这里被重写为一篇文章。