【发布时间】:2020-01-24 13:44:40
【问题描述】:
我正在尝试在流执行中收集数据作为地图。
为了确保我没有任何重复我正在使用 merger function 但最终有 NPE。
见代码sn-p
streamableList().stream()
.filter(Objects::nonNull)
.filter(it-> nonNull(it.getKeyHere()))
.collect(toMap(it -> it.getKeyHere(),
it -> it.getValueHere(), (a1, a2) -> a1));
见下面的异常
java.lang.NullPointerException: null
at java.util.HashMap.merge(HashMap.java:1216)
at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320)
at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)....
.....and further calls of written code....
谁能提出收集时失败的原因以及如何解决?
【问题讨论】:
-
什么是
streamableList() -
你能发一些数据到simulate
streamableList()吗?而且,正如@YCF_L 所询问的,返回的列表类型。 -
it.getValueHere()是否有可能返回 null? -
只要您不添加最小的、可验证的示例,我们就无法提供帮助
标签: java java-8 hashmap java-stream