使用null结果处理java.util.concurrent.Future

时间:2011-09-15 00:21:20

标签: java java.util.concurrent

如果我提交任务,并且futureTask.get()返回null,我想以另一种方式处理我在Callable对象中发送的内容。在调试时,我可以看到我的Future有一个名为“sync”的私有最终成员。 “sync”包含我的callable,它具有我在Callable中发送的原始数据。不幸的是,我无法达到它。

在伪代码中......

Callable callable = new Callable(myData);

Future future = executor.submit(callable);

if (future.get() == null)
{
     //what I would like to have if the "sync" member was available..
      String alreadySubmittedData = future.sync.callable.myData;
 }

似乎应该有办法做到这一点?感谢。

2 个答案:

答案 0 :(得分:1)

无论如何,

CallableFuture只是接口,所以我猜你必须自己保留这些信息(例如将期货与地图中的callables相关联)。

答案 1 :(得分:0)

为什么你不能从变量callable获取myData?