用Collectors.groupingBy 对可能为空的字段分组时,如果数据中对应的字段有空值的话会报空指针异常
所以在Collectors.groupingBy()方法中要对字段进行处理
例如:
我现在有需求就是对empName进行分组,如果empName有值就返回他的值作为key, 如果没有值就返回"园区"作为key.
代码如下:
Map<String, List<SiteInfo>> collect = entrySource.getValue().stream()
.collect(Collectors.groupingBy(x -> Optional.ofNullable(x.getEmpName()).orElse("园区")));