eachWithIndex 循环不稳定

我有如下代码


           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() 是适用于参数类型: () 值: [] 可能的解决方案: toSet(), toSet(), intersect(java.lang.Iterable), intersect(java.lang.Iterable), intersect(java.util.Collection), every ()


在所有情况下,我都检查过,data始终具有相同的值,并且从未为空。

http://img3.mukewang.com/6194c8300001e0ce03090177.jpg

请指教这里可能有什么问题?


慕的地8271018
浏览 209回答 1
1回答

慕尼黑5688855

result?.data是列表的实例(查看“as Map”操作后的数据类,它变成了 ArrayList1_groovyProxy...)您可以遍历列表(并根据需要构建地图):Map data = [:]result?.data?.eachWithIndex { dataItem, idx ->   if (dataItem) {      log.info dataItem      data[idx] = dataItem   }}如果这种情况不时发生 - 可能是您的结果? .data已经有时作为 List 有时作为 Map
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java