import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class CompletableFutureDemo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
// CompletableFuture<Void> voidCompletableFuture = CompletableFuture.runAsync(() -> {
// System.out.println("CompletableFuture 的没有返回参数");
// });
// voidCompletableFuture.get();
CompletableFuture<String> supplyAsync = CompletableFuture.supplyAsync(() -> {
// System.out.println("CompletableFuture 的 supplyAsync 有参数返回");//处理逻辑
int a = 10/0;
return "1024";
});
String s = supplyAsync.whenComplete((u, t) -> {
System.out.println("u:" + u);
System.out.println("t:" + t);
}).exceptionally(e -> {
// System.out.println(e.getMessage());
return e.getMessage();
}).get();
// System.out.println(s);
}
}
int a = 10/0;是为了提供异常处理
whenComplete的两个参数第一个是接受的返回值,t是异常信息
整个代码风格使用的链式编程风格