This question already has answers here:
How to pass an ArrayList to a varargs method parameter?
(5个答案)
5年前关闭。
假定具有以下签名的方法:
运行时...
...我将得到
但是,假设我将参数存储在称为
我想调用
我的天真尝试是...
...但是那会给我
将
请注意,在这种特定情况下,
(5个答案)
5年前关闭。
假定具有以下签名的方法:
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>
的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
中的参数数目恰好是三个,但是我正在寻找的解决方案显然应该是通用的,并且可以用于arrayList
中的任何数目的参数。 最佳答案
将您的ArrayList转换为类型为Array的对象。
ClassName.foo("something", "something", arrayList.toArray());
08-05 16:58