我有以下与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))

10-06 10:47