list.stream()包装成 either 类型
时间: 2023-10-24 17:13:58 浏览: 37
你可以使用Java的Vavr库中的Either类型来包装一个列表流。例如,以下代码可以将一个包含整数的列表流转换为Either类型,其中左侧表示出现异常,右侧表示成功返回了列表流:
```
import io.vavr.control.Either;
import java.util.List;
List<Integer> numbers = List.of(1, 2, 3, 4, 5);
Either<Exception, List<Integer>> result = Either.right(numbers.stream().toList());
```
如果在转换流的过程中出现了异常,可以使用以下代码将其包装在左侧:
```
import io.vavr.control.Either;
import java.util.List;
List<Integer> numbers = List.of(1, 2, 3, 4, 5);
Either<Exception, List<Integer>> result = Either
.tryCatch(() -> numbers.stream().map(n -> n / 0).toList())
.mapLeft(ex -> new Exception("Error occurred while processing stream", ex));
```
在这个例子中,我们故意在流处理中除以0,这将导致一个异常。Vavr的tryCatch方法将这个异常包装在左侧中,而mapLeft方法则将其映射为一个新的异常。
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)