测试发现有空指针异常,看日志那行只有一个lambda表达式list转map,一查才发现原来Collectors.toMap不允许value值为null,否则会报空指针异常。
查看源代码可以看到:
解决方法:
- for循环 或 forEach
Map<String, String> map = new HashMap<>();
list.forEach((i) -> map.put(i.getId(), i.getValue()));
- 使用stream的collect重载方法
Map<String, String> map = list.stream().collect(HashMap::new, (m,v)->
m.put(v.getId(), v.getValue()),HashMap::putAll);