MST

星途 面试题库

面试题:Java 中 CompletableFuture 的 AnyOf 关系基础应用

假设有三个 CompletableFuture 任务,任务1返回一个整数,任务2返回一个字符串,任务3返回一个布尔值,使用 CompletableFuture 的 anyOf 方法实现当任意一个任务完成时,获取其结果并打印。请编写完整的Java代码实现此功能。
36.0万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public class CompletableFutureAnyOfExample {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        CompletableFuture<Integer> future1 = CompletableFuture.supplyAsync(() -> {
            // 模拟任务1
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return 42;
        });

        CompletableFuture<String> future2 = CompletableFuture.supplyAsync(() -> {
            // 模拟任务2
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "Hello, World!";
        });

        CompletableFuture<Boolean> future3 = CompletableFuture.supplyAsync(() -> {
            // 模拟任务3
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return true;
        });

        CompletableFuture<Object> anyOfFuture = CompletableFuture.anyOf(future1, future2, future3);

        Object result = anyOfFuture.get();
        System.out.println("任意一个任务完成的结果: " + result);
    }
}