有没有办法用java 8 Stream API做到这一点?
我需要将每个集合项转换为其他类型(dto mapping)并将所有集合作为列表返回...
像
这样的东西Collection<OriginObject> from = response.getContent();
DtoMapper dto = new DtoMapper();
List<DestObject> to = from.stream().forEach(item -> dto.map(item)).collect(Collectors.toList());
public class DtoMapper {
public DestObject map (OriginObject object) {
return //conversion;
}
}
提前谢谢
更新#1:唯一的流对象是response.getContent()
答案 0 :(得分:4)
我认为您在以下情况之后:
List<SomeObject> result = response.getContent()
.stream()
.map(dto::map)
.collect(Collectors.toList());
// do something with result if you need.
请注意forEach
是终端操作。如果要对每个对象执行某些操作(例如打印它),则应使用它。如果您想继续调用链,可能需要进一步过滤或收集到列表中,您应该使用map
。