Optional.flatMap
时间: 2023-08-15 14:11:48 浏览: 57
Optional.flatMap是Optional类中的一个方法,它用于将一个Optional对象中的值进行转换和处理。它接受一个函数作为参数,该函数将值类型转换为另一个Optional对象。
如果原始Optional对象中的值存在,flatMap会将该值传递给函数,并返回函数返回的Optional对象。如果原始Optional对象中的值不存在(即为empty),则flatMap直接返回一个empty Optional对象。
这个方法的作用在于简化对Optional对象的处理,避免了嵌套的if-else语句。通过使用flatMap,我们可以将一系列的操作链式地应用在Optional对象上。
以下是一个使用flatMap的示例:
```java
Optional<Integer> number = Optional.of(10);
Optional<Integer> result = number.flatMap(n -> {
if (n > 0) {
return Optional.of(n * 2);
} else {
return Optional.empty();
}
});
System.out.println(result); // 输出 Optional[20]
```
在上面的示例中,我们首先创建了一个包含整数值10的Optional对象。然后我们使用flatMap方法将这个值传递给一个函数。如果该值大于0,则返回一个新的包含原始值乘以2的Optional对象;否则返回一个empty Optional对象。
最后,我们打印出结果,可以看到输出为Optional[20],表示原始值10经过乘以2的处理后得到了新的值20。