Collectors.mapping Collectors.toList())出现All elements are null
时间: 2024-03-20 10:39:03 浏览: 77
grafana-collectors:我们在 MWT2 上使用的一堆 Grafana 集合守护进程
如果 `Collectors.mapping` 和 `Collectors.toList()` 结合使用时出现 `All elements are null` 的异常,那么说明 `mapping` 方法返回的结果全部为 `null`,而 `toList` 方法不支持将全部为 `null` 的元素放入 `List` 中。
为了解决这个问题,可以在 `mapping` 方法中使用 `Optional` 对象,并在 `filter` 方法中排除 `Optional` 为空的情况,例如:
```
Collectors.mapping(o -> Optional.ofNullable(map.get(o.getNum())).filter(Objects::nonNull), Collectors.toList())
```
这样,如果 `map.get(o.getNum())` 返回 `null`,则 `Optional` 为空,会被过滤掉,不会将 `null` 值放入 `List` 中。
阅读全文