基本上我有一个ArrayList的位置:
ArrayList<WorldLocation> locations = new ArrayList<WorldLocation>();
在此之下,我调用以下方法:
.getMap();
getMap()方法中的参数为:
getMap(WorldLocation... locations)
我遇到的问题是我不确定如何在整个locations方法列表中传递该方法。
locations
我试过了
.getMap(locations.toArray())
但是getMap不接受,因为它不接受Objects []。
现在,如果我使用
.getMap(locations.get(0));
它会完美地工作…但是我需要以某种方式传递所有位置…我当然可以继续添加locations.get(1), locations.get(2)等等,但是数组的大小会有所不同。我只是不习惯整个概念ArrayList
locations.get(1), locations.get(2)
ArrayList
最简单的方法是什么?我觉得我现在不在考虑。
源文章:将列表作为参数传递给vararg方法
使用toArray(T[] arr)方法。
toArray(T[] arr)
.getMap(locations.toArray(new WorldLocation[locations.size()]))
(toArray(new WorldLocation[0])也可以,但是您会无故分配零长度的数组。)
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()])); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...