来自Groovy的Java 8 Stream分组

时间:2016-10-11 16:52:37

标签: groovy java-stream

我尝试使用{8}使用Java 8 Stream API和groovy:

@CompileStatic让我很头疼,错误说:

  

java.util.stream.Collectors中的groupingBy不能应用于groovy.lang.Closure

目前使用Java 8和Groovy 2.4.7

我的意图是:

  1. 使用地图构建DTO
  2. 使用groupingBycollect一起使用UUID作为键创建地图
  3. 这是最终的工作代码(使用" Will Lp"" BalRog"支持)开发。

    groupingBy

1 个答案:

答案 0 :(得分:2)

您需要将闭包显式转换为Function,这是Collectors.groupBy()期望的参数类型。改变这一行:

    .collect(groupingBy { Relation r -> return r.entityUUID })

对此:

    .collect(groupingBy((Function) { Relation r -> return r.entityUUID }))

(请记住导入java.uti‌​l.function.Function