Подтвердить что ты не робот

Передача списка в виде varargs

У меня есть 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, но я не понимаю, почему решение не будет применяться ни к чему.

4b9b3361

Ответ 1

Просто пройдите things.toArray(new Thing[things.size()]).

Ответ 2

Парадигменный аргумент внутренне интерпретируется как массив. Поэтому вы должны преобразовать его в массив раньше. Также в вашем методе doIt вы должны получить доступ к элементам вещей с индексированием массива.