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)