gpt4 book ai didi

java - 为什么 ExecutorService.submit(Runnable task) 返回 Future 而不是 Future

转载 作者:搜寻专家 更新时间:2023-10-30 21:33:21 25 4
gpt4 key购买 nike

ExecutorService有以下方法:

Future<?> submit(Runnable task)

但由于这个 Futureget方法将始终返回 null下面的签名不是更合适吗?

Future<Void> submit(Runnable task)

最佳答案

Jdk 1.8里面submit方法实现使用void,jdk1.6是Object,我的理解是用void更合适,所以jdk1.7/1.8改了,只是为了支持接口(interface)不改它

 public Future<?> submit(Runnable task) {
if (task == null) throw new NullPointerException();
RunnableFuture<Void> ftask = newTaskFor(task, null);
execute(ftask);
return ftask;
}

在 JDK 1.6 中

 public Future<?> submit(Runnable task) {
if (task == null) throw new NullPointerException();
RunnableFuture<Object> ftask = newTaskFor(task, null);
execute(ftask);
return ftask;
}

关于java - 为什么 ExecutorService.submit(Runnable task) 返回 Future<?> 而不是 Future<Void>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43974310/

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