eachWithIndex 循环不稳定
eachWithIndex loop is unstable
我有如下代码
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 - Exception occurred in job:
Grails Job Message: groovy.lang.MissingMethodException: No signature
of method: java.util.ArrayList.entrySet() is applicable for argument
types: () values: [] Possible solutions: toSet(), toSet(),
intersect(java.lang.Iterable), intersect(java.lang.Iterable),
intersect(java.util.Collection), every()
我已经检查过,在所有情况下,data
始终具有相同的值,而且它永远不会为空。
请指教这里可能是什么问题?
result?.data是list的实例(看数据class经过"as Map"运算变成ArrayList1_groovyProxy... )
您可以遍历列表(并根据需要构建地图):
Map data = [:]
result?.data?.eachWithIndex { dataItem, idx ->
if (dataItem) {
log.info dataItem
data[idx] = dataItem
}
}
如果这种情况时有发生 - 可能您的 result?.data 有时以 List 的形式出现,有时以 Map
的形式出现
我有如下代码
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 - Exception occurred in job: Grails Job Message: groovy.lang.MissingMethodException: No signature of method: java.util.ArrayList.entrySet() is applicable for argument types: () values: [] Possible solutions: toSet(), toSet(), intersect(java.lang.Iterable), intersect(java.lang.Iterable), intersect(java.util.Collection), every()
我已经检查过,在所有情况下,data
始终具有相同的值,而且它永远不会为空。
请指教这里可能是什么问题?
result?.data是list的实例(看数据class经过"as Map"运算变成ArrayList1_groovyProxy... ) 您可以遍历列表(并根据需要构建地图):
Map data = [:]
result?.data?.eachWithIndex { dataItem, idx ->
if (dataItem) {
log.info dataItem
data[idx] = dataItem
}
}
如果这种情况时有发生 - 可能您的 result?.data 有时以 List 的形式出现,有时以 Map
的形式出现