我有如下代码 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始终具有相同的值,并且从未为空。请指教这里可能有什么问题?
1 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
result?.data是列表的实例(查看“as Map”操作后的数据类,它变成了 ArrayList1_groovyProxy...)您可以遍历列表(并根据需要构建地图):
Map data = [:]
result?.data?.eachWithIndex { dataItem, idx ->
if (dataItem) {
log.info dataItem
data[idx] = dataItem
}
}
如果这种情况不时发生 - 可能是您的结果? .data已经有时作为 List 有时作为 Map
添加回答
举报
0/150
提交
取消