Страницы

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

воскресенье, 2 февраля 2020 г.

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

#java #android


Использую 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); 
}


Что я делаю не так? Вроде ж все правильно... Передаю массив, бекграунд получает массив,
но когда этот массив ставишь в цикл то говорит, что это не массив...
    


Ответы

Ответ 1



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

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

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