假设具有以下签名的方法:
public static void foo(String arg1, String args2, Object... moreArgs);
跑步时......
ClassName.foo("something", "something", "first", "second", "third");
...我会得到moreArgs[0] == "first"
,moreArgs[1] == "second"
和moreArgs[2] == "third"
。
但假设我将参数存储在名为ArrayList<String>
的{{1}}中,其中包含“first”,“second”和“third”。
我想使用arrayList
作为参数调用foo
以moreArgs[0] == "first"
,moreArgs[1] == "second"
和moreArgs[2] == "third"
。
我天真的尝试是......
arrayList
...但这会给我ClassName.foo("something", "something", arrayList);
这不是我想要的。
将moreArgs[0] == arrayList
传递给上述arrayList
方法的正确方法是什么,以便foo
,moreArgs[0] == "first"
和moreArgs[1] == "second"
?
请注意moreArgs[2] == "third"
中的参数个数在这个特定情况下恰好是三个,但我正在寻找的解决方案显然应该是通用的,并且适用于arrayList
中的任意数量的参数。
答案 0 :(得分:22)
将ArrayList转换为类型为object的数组。
ClassName.foo("something", "something", arrayList.toArray());
答案 1 :(得分:-1)
你传递的只是你的期望。但是只有一件事,它是对ArrayList的引用。
然后你必须将你的东西从阵列列表中移开。