java8的stream中Collectors.toMap空指针问题
Posted 好大的月亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8的stream中Collectors.toMap空指针问题相关的知识,希望对你有一定的参考价值。
在工作中遇到了一个List
转Map
的时候的一个NullPointException
.
情形很简单,问题出在Collectors.toMap
,当key值冲突的时候理论上会按照我们的代码来替换value
,但是这里有个小坑
list.stream().collect(Collectors.toMap(it -> it.getCategoryId(), it -> it.getCategoryImage() ,(k1,k2) -> k2));
可以看到map
在key
值冲突merge
的时候会要求新的value
不能为null
.
这意味着,只要传入了(k1,k2) -> k2
处理key
冲突的function
,那么当value
里存在Null
的时候必然会抛NullPointException
以上是关于java8的stream中Collectors.toMap空指针问题的主要内容,如果未能解决你的问题,请参考以下文章