Java 8过滤Map生成List遇编译错误,求修正方法
代码修正方案
错误原因
Collectors.toList()是无参方法,你错误地将Entry到Resource的转换lambda直接作为参数传入,这与方法定义不符,导致编译失败。
修正后的代码
protected Map<String, BaseObject> resources; List<Resource> qualifyingResources = this.resources.entrySet().stream() .filter(entry -> entry.getValue().getType().equals(inputType)) .map(entry -> (Resource) entry.getValue()) // 先将Entry映射为Resource对象 .collect(Collectors.toList()); // 调用无参的toList()收集结果
补充说明
- 在Stream流程中,
filter()负责筛选符合条件的Entry,之后需要用map()操作将每个Entry转换为你需要的Resource类型。 Collectors.toList()仅负责将Stream中的元素收集为List,转换逻辑应提前放在map()步骤中完成。
内容的提问来源于stack exchange,提问作者Timothy Noon
相关产品推荐
相关产品推荐

