Страницы

Поиск по вопросам

воскресенье, 7 апреля 2019 г.

Почему не принимает параметр?

Использую AsyncTask в который как параметр передаю массив Field[].
Вроде все хорошо, но когда получаю масив, то подчеркивает красным и говорит, что ожидает увидить массив, а ему якобы не массив дают
Field[] raw = R.raw.class.getFields(); go(raw);
private void go(Field[] field) { new AsyncTask() { @Override protected Void doInBackground(Field[]... params1) {
for (Field aRaw : params1) { <---- вот тут params1 подчеркивает и говорит что ожидает Field[] а получает Field ... } return null; } }.execute(field); }
Что я делаю не так? Вроде ж все правильно... Передаю массив, бекграунд получает массив, но когда этот массив ставишь в цикл то говорит, что это не массив...


Ответ

Конструкция Field[]... params1 подразумевает, что вы передадите неопределенное количество элементов, params1 - это массив этих элементов, в вашем случае получается массив массивов Field.
@Override protected Void doInBackground(Field... params1) { for (Field aRaw : params1) { ... }

Комментариев нет:

Отправить комментарий