Groovy - collect()返回一个强制转换异常

时间:2013-06-23 02:35:28

标签: java groovy

我有一个非常简单的代码片段,我正在尝试使用groovy的collect()方法返回一个对象列表。但由于某种原因,我无法让这个工作。在我的日志中,我看到正在检索的正确信息是:

[{phoneNumber=012345678, name=testing}]'

但我得到了一个

cast exception : Cannot cast object:
[{phoneNumber=012345678, name=testing}]'
Could not find matching constructor for: java.util.Iterator(java.util.LinkedHashMap)**

这是我的代码

Iterator<Resource> children = null
Iterator<Resource> serviceList = null

while(serviceList.hasNext()){
    Resource child = serviceList.next()

    children = child.collect{[
    phoneNumber : child.adaptTo(ValueMap.class).get("phoneNumber", ""),
    name : child.adaptTo(ValueMap.class).get("name", "")
    ]}
}

我还尝试将子设置为字符串和资源无济于事。任何想法,我都在这个小编辑上敲了几个小时。

1 个答案:

答案 0 :(得分:2)

children应该是List而不是Iterator

此外,你正在做你在之前的问题中做错的事情,孩子将只是serviceList的最后一个元素