цикл eachWithIndex нестабилен - PullRequest
       19

цикл eachWithIndex нестабилен

0 голосов
/ 15 октября 2018

У меня есть код, подобный приведенному ниже

           Map data = result?.data as Map
           data.eachWithIndex { dataItem, idx ->
                if (dataItem) {log.info dataItem}}

Проблема, с которой я здесь сталкиваюсь, это часть кода data.eachWithIndex { dataItem, idx ->.Иногда это прекрасно работает и иногда выдает ошибку ниже

2018-10-15 10: 07: 31,569 [quartzScheduler_Worker-1] ERROR listeners.ExceptionPrinterJobListener - Возникла исключительная ситуация в задании: Сообщение задания Grails: groovy.lang.MissingMethodException: Нет сигнатуры метода: java.util.ArrayList.entrySet () применим для типов аргументов: () values: [] Возможные решения: toSet (), toSet (), intersect (java.lang.Iterable), intersect(java.lang.Iterable), intersect (java.util.Collection), every ()

Я проверил, что во всех случаях data всегда имеет одно и то же значение и никогда не былобыл нулевым.

data value

Пожалуйста, посоветуйте, пожалуйста, в чем здесь проблема?

1 Ответ

0 голосов
/ 15 октября 2018

результат? .Data является экземпляром списка (посмотрите на класс данных после операции «as Map», он становится ArrayList1_groovyProxy ...) Вы можете перебирать список (и строить карту, если вам нужно):

Map data = [:]
result?.data?.eachWithIndex { dataItem, idx ->
   if (dataItem) {
      log.info dataItem
      data[idx] = dataItem
   }
}

Если это случается время от времени - возможно, ваш результат? .Data уже иногда появляется как List, а иногда как Map

...