[英]pass two parameters using java8 stream().map to call service method
我有以下与Java8
正常工作的服务
List<ReportCount> getReportDetails(List<String> statusList);
statusList.add(Arrays.asList("SUCCESS"));
statusList.add(Arrays.asList("CANCELLED"));
statusList.add(Arrays.asList("ON_HOLD","INPROGRESS"));
statusList.stream()
.map(reportService::getReportDetails)
.forEach(e -> reportMap.put("report_" + reportMap.size(), e));
如何使用上面的代码为下面的方法传递 1 个更多参数。
String id="CA";
List<ReportCount> getReportDetails(List<String> statusList, String id);
任何人都可以请帮忙。 谢谢
首先不使用原始类型:
List<ReportCount> getReportDetails(List<String> statusList, String id);
然后使用 lambda 表达式:
List<List<String>> listOfStatusList = new ArrayList<>();
listOfStatusList.add(Arrays.asList("SUCCESS"));
listOfStatusList.add(Arrays.asList("CANCELLED"));
listOfStatusList.add(Arrays.asList("ON_HOLD","INPROGRESS"));
String someId = ...;
listOfStatusList.stream()
.map(statusList -> reportService.getReportDetails(statusList, someId))
另一种选择是:
1) 映射到 Object 数组,将原始数据添加为条目 0,然后向其他条目添加额外参数
2) 再次映射,这次使用Object 数组中的数据转换回第一次映射中添加的特定类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.