【发布时间】:2020-01-17 20:23:31
【问题描述】:
我想知道是否可以从 java.util.stream.Collectors 类扩展内置的 Java Stream 收集器,而不是从头开始构建自定义收集器,从而复制已经在该类中实现的代码。
例如:
假设我有Stream<Map.Entry<String, Long>> mapEntryStream,我想将其收集到Map<String, Long> 类型的地图中。
当然可以:
mapEntryStream.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
但是假设我想要这样推断的键和条目:
//Not a real Java Collectors method
mapEntryStream.collect(Collectors.toMap());
那么,我如何制作一个像上面那样不带参数但调用Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue) 的收集器?
请注意:这不是关于是否应该制作这样一个收藏家的问题 - 只有当它可以 做出来。
【问题讨论】:
标签: java java-stream collectors