自定义 Future 对象
Custom Future objects
我想创建自定义 Future 对象。
下面的代码工作正常
ThreadPoolExecutor mExecutor;
Future<?> f = mExecutor.submit(new DownloadRunnable(task, itemId));
我想获取提交的 return 值并将其分配给 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 MuFuture<T> implements Future<T> {
}
然后我希望代码能正常工作:
MyFuture<?> f = (MyFuture<?>) mExecutor.submit(new DownloadRunnable(task, itemId));
f.setVer(true);
你可以通过传递 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)));
我想创建自定义 Future 对象。
下面的代码工作正常
ThreadPoolExecutor mExecutor;
Future<?> f = mExecutor.submit(new DownloadRunnable(task, itemId));
我想获取提交的 return 值并将其分配给 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 MuFuture<T> implements Future<T> {
}
然后我希望代码能正常工作:
MyFuture<?> f = (MyFuture<?>) mExecutor.submit(new DownloadRunnable(task, itemId));
f.setVer(true);
你可以通过传递 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)));