【发布时间】:2011-01-15 21:57:29
【问题描述】:
假设一个具有以下签名的方法:
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 的ArrayList<String> 中,其中包含“第一”、“第二”和“第三”。
我想调用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 中的任意数量的参数。
【问题讨论】:
标签: java