CompletableFuture少一些静态方法
时间: 2024-07-31 22:01:46 浏览: 118
`CompletableFuture` 是 Java 中用于处理异步计算的一个高级工具,它提供了一种基于承诺的编程模型。这个库中的核心类 `CompletableFuture` 提供了一系列静态工厂方法,用于创建不同类型的完成阶段(Promise、Future 或 Supplier),以及 `thenApply`, `thenAccept`, `thenCompose`, 等一系列 `thenXXX` 方法,用于链式操作异步结果。
如果你想要减少对静态方法的依赖,可以:
1. **实例化 CompletableFuture**:通过 `new CompletableFuture<>()` 创建一个新的 CompletableFutrue 实例,然后在其上调用非静态方法,比如 `thenRun`、`exceptionally` 来添加回调。
```java
CompletableFuture.supplyAsync(() -> {
// 异步任务代码
}).thenAccept(result -> {
// 处理成功结果
}).exceptionally((ex) -> {
// 处理异常
});
```
2. **避免滥用静态工厂方法**:当你需要执行一些特定的异步操作时,可以直接使用具体的非静态工厂方法,如 `supplyAsync`, `submit` 等,它们会返回一个关联的 `CompletableFuture` 对象。
```java
ExecutorService executor = Executors.newSingleThreadExecutor();
CompletableFuture<Integer> future = executor.submit(() -> {
return computeSomething();
});
```
通过这种方式,你可以更好地控制上下文并保持代码的组织结构。
阅读全文