gpt4 book ai didi

java - 自定义 future 对象

转载 作者:行者123 更新时间:2023-11-30 03:22:43 24 4
gpt4 key购买 nike

我想创建自定义 Future 对象。

下面的代码可以正常工作

ThreadPoolExecutor mExecutor;
Future<?> f = mExecutor.submit(new DownloadRunnable(task, itemId));

我想获取提交的返回值并将其分配给 MyFuture 对象,并进行额外的调用。我进行了以下更改,并遇到了强制转换异常...有什么建议吗?

ThreadPoolExecutor mExecutor;
// cast exception
MyFuture<?> f = (MyFuture<?>) mExecutor.submit(new DownloadRunnable(task, itemId));
f.setVer(true);


public class MyFuture<?> implements Future<?> {
Boolean myVar;

public void setVar(Boolean v) {
...
}
}

最佳答案

您可以通过传递 Future<?> 来创建构造函数

 public class MyFuture<?> extends Future<?> 
{
Boolean myVar;
Future<?> fut;
MyFuture<?>(Future<?> fut)
{
this.fut = fut;
}

public void setVar(Boolean v)
{
...
}
}

所以下面这行

  MyFuture<?> f = (MyFuture<?>) mExecutor.submit(new DownloadRunnable(task, itemId));

变成了

  MyFuture<?> f = new MyFuture<?>(mExecutor.submit(new DownloadRunnable(task, itemId)));

关于java - 自定义 future 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30964969/

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