Collectors.toMap中value值为null导致空指针

测试发现有空指针异常,看日志那行只有一个lambda表达式list转map,一查才发现原来Collectors.toMap不允许value值为null,否则会报空指针异常。

查看源代码可以看到:
Collectors.toMap中value值为null导致空指针_第1张图片

解决方法:

  1. for循环 或 forEach
Map<String, String> map = new HashMap<>();
list.forEach((i) -> map.put(i.getId(), i.getValue()));
  1. 使用stream的collect重载方法
Map<String, String> map = list.stream().collect(HashMap::new, (m,v)->
    m.put(v.getId(), v.getValue()),HashMap::putAll);

你可能感兴趣的:(java,java)