jdk8 Optional.map获取多个值
时间: 2025-02-23 16:34:09 浏览: 75
在Java 8及后续版本中,`Optional` 类是一个容器,用于表示可能存在也可能不存在的值。`map()` 方法用于对 `Optional` 中的值应用一个函数,如果 `Optional` 包含一个非空值,则返回一个新的 `Optional` 结果。
如果你想通过 `map()` 获取多个值,通常是在处理一个 `Optional` 对象的链式操作中,例如使用 Lambda 表达式。假设你有一个 `List<Optional<String>>`,你可以使用 `flatMap()` 而不是 `map()`,因为 `flatMap()` 可以连接两个 `Optional` 的结果:
```java
List<Optional<String>> optionalList = ...; // 假设这是一个包含Optional<String>的列表
List<String> result = optionalList.stream()
.flatMap(Optional::stream)
.collect(Collectors.toList());
```
这里,`flatMap()` 首先将每个 `Optional` 转换成 `Stream<String>`,然后收集所有转换后的字符串到一个新的列表中。这样就实现了从多个 `Optional` 获取多个值的操作。
阅读全文
相关推荐
















