Java Stream.map未转换为流的流
原因是Java Stream.map未转换为流的流,java,lambda,java-stream,Java,Lambda,Java Stream,原因是映射操作返回的类型是流,而不是列表 从上面推断 reportNames.stream() .map(reportName -> mapReportNameToFormParams(form, reportName)) .flatMap(stream -> stream) .collect(Collectors.toList()); 您可以收集上述内容以返回列表,然后继续执行当前代码,或者将flatMap应
映射
操作返回的类型是流
,而不是列表
从上面推断
reportNames.stream()
.map(reportName -> mapReportNameToFormParams(form, reportName))
.flatMap(stream -> stream)
.collect(Collectors.toList());
您可以收集上述内容以返回列表
,然后继续执行当前代码,或者将flatMap
应用于流
,您可以将标识操作用作:
return parts.stream().map(part ->
ExcelReportForm.builder().facility(form.getFacility())
.month(form.getMonth())
.year(form.getYear())
.partNumber(part)
.build()
);
您的
映射
调用是否返回流
或列表
?你不能在if子句中返回一个,在else子句中返回另一个。如果你的map
返回一个列表
,这将很好。是的,我想出来了。。谢谢你的帮助。@AnandVaidya附带说明,map
中的所有逻辑都将驻留在另一个函数中,以进一步改进它。希望没有人会修改当前的流元素。是的,我这样做是为了找出实际的错误@空指针
return parts.stream().map(part ->
ExcelReportForm.builder().facility(form.getFacility())
.month(form.getMonth())
.year(form.getYear())
.partNumber(part)
.build()
);
.flatMap(s -> s)