You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将ArrayList传入Tasks.whenAllSuccess方法?

解决方法:将ArrayList转换为Task数组传入

嗨,这个问题其实很容易搞定!Tasks.whenAllSuccess()确实支持传入多个Task参数,但它的可变参数版本(Task<?>...)没法直接接收ArrayList。不过我们只需要把ArrayList转换成对应的Task数组,就能完美适配这个方法了。

具体实现代码

假设你已经有一个装满Task的ArrayList:

ArrayList<Task<?>> taskList = new ArrayList<>();
taskList.add(task1);
taskList.add(task2);
// 可以继续添加更多任务

你只需要调用toArray()方法把列表转成Task数组,再传入whenAllSuccess():

Tasks.whenAllSuccess(taskList.toArray(new Task[0]))

补充说明

  • 如果你使用的是Java 8及以上版本,也可以用Stream API来转换数组,写法更简洁:
    Tasks.whenAllSuccess(taskList.stream().toArray(Task[]::new))
    
  • 另外,部分版本的Tasks类还提供了直接接收Iterable<? extends Task<?>>的重载方法,要是你的环境支持的话,直接传ArrayList也是可行的:
    Tasks.whenAllSuccess(taskList)
    
    不过转数组的方式兼容性更强,不管哪个版本基本都能生效。

这样就能把列表里的所有任务打包传入whenAllSuccess()啦!

内容的提问来源于stack exchange,提问作者Brian Begun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:07:07