gpt4 book ai didi

Java Future 总是返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:04:57 26 4
gpt4 key购买 nike

嘿,我有一个关于 Java Futures 的快速问题。我将问题分解为这个片段:

    ExecutorService service = Executors.newCachedThreadPool();
try {
System.out.println(service.submit(new FutureTask<>(() -> true)).get());
} catch (InterruptedException e1) {
e1.printStackTrace();
} catch (ExecutionException e1) {
e1.printStackTrace();
}

我希望这会在我的终端上输出“true”。但它总是输出 null。我错过了什么?

最佳答案

这是FutureTask那是在抛弃逻辑。你的() -> trueCallable<Boolean>返回 true ,但是FutureTaskRunnable它不返回值。因此submit返回 Future<Void> (因为它得到一个 Runnable 参数,而不是一个 Callable ),它总是包含 null。

删除不必要的 FutureTask包装器,只需使用 Callable直接。

关于Java Future 总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41745809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com