在工作中遇到了一个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