我当前的代码使用了一系列异步过程,这些过程最终产生了结果。我需要以这样一种方式包装每一个,即每一个都可以通过同步方法访问,并将结果作为返回值。我想使用执行器服务来做到这一点,以允许其中许多同时发生。我觉得 Future 可能与我的实现有关,但我想不出一个好的方法来实现这一点。
我现在拥有的:
public class DoAJob {
ResultObject result;
public void stepOne() {
// Passes self in for a callback
otherComponent.doStepOne(this);
}
// Called back by otherComponent once it has completed doStepOne
public void stepTwo(IntermediateData d) {
otherComponent.doStepTwo(this, d);
}
// Called back by otherComponent once it has completed doStepTwo
public void stepThree(ResultObject resultFromOtherComponent) {
result = resultFromOtherComponent;
//Done with process
}
}
这在内部工作得很好,但现在我需要将我的流程映射到一个同步方法,其返回值如下:
public ResultObject getResult(){
// ??? What goes here ???
}
有谁知道如何优雅地实现这一点?