Предположим, что существует метод со следующей сигнатурой:
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
.