java8的stream中Collectors.toMap空指针问题

Posted 好大的月亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8的stream中Collectors.toMap空指针问题相关的知识,希望对你有一定的参考价值。

在工作中遇到了一个ListMap的时候的一个NullPointException.

情形很简单,问题出在Collectors.toMap,当key值冲突的时候理论上会按照我们的代码来替换value,但是这里有个小坑

list.stream().collect(Collectors.toMap(it -> it.getCategoryId(), it -> it.getCategoryImage() ,(k1,k2) -> k2));

可以看到mapkey值冲突merge的时候会要求新的value不能为null.
这意味着,只要传入了(k1,k2) -> k2处理key冲突的function,那么当value里存在Null的时候必然会抛NullPointException

以上是关于java8的stream中Collectors.toMap空指针问题的主要内容,如果未能解决你的问题,请参考以下文章

Java8 Stream流

Java8之Stream

Java8 Stream

Java8初体验Stream语法详解(转)

java8 新特性3 Stream Api

java8 stream操作