Ответ 1
Просто пройдите things.toArray(new Thing[things.size()])
.
У меня есть List<Thing>
, и я хотел бы передать его объявленному методу doIt(final Thing... things)
. Есть ли способ сделать это?
Код выглядит примерно так:
public doIt(final Thing... things)
{
// things get done here
}
List<Thing> things = /* initialized with all my things */;
doIt(things);
Этот код явно не работает, потому что doIt()
принимает Thing
не List<Thing>
.
Есть ли способ передать в List как varargs?
Это приложение Android, но я не понимаю, почему решение не будет применяться ни к чему.
Просто пройдите things.toArray(new Thing[things.size()])
.
Парадигменный аргумент внутренне интерпретируется как массив. Поэтому вы должны преобразовать его в массив раньше. Также в вашем методе doIt
вы должны получить доступ к элементам вещей с индексированием массива.