我使用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);
有人可以帮忙吗?感谢
答案 0 :(得分:5)
从不开始使用原始类型:
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 :(得分:0)
另一种选择是:
1)映射到添加原始数据作为条目0的对象数组,然后向其他条目添加额外的参数
2)再次映射,这次使用Object数组中的数据转换回第一个映射中添加的特定类型。