我需要转换一个类似next:的同步方法
method (String, String, Object)
到异步方法。
主要问题是我们使用Java 1.4,而我不能使用Executor、Future。。。
有什么想法吗?
定义一个回调接口(如果还没有),并使您的方法将该接口作为参数。该方法将启动并完成其工作,完成后,它将调用回调。
示例:
int synchronousMethod(int arg0, String arg1) {
int result = doStuff();
return result;
}
成为
void asynchronousMethod(int arg0, String arg1, Callback callback) {
try {
int result = doStuff();
} catch (Throwable t) {
callback.onFailure(t);
return;
}
callback.onSuccess(result);
}
其中Callback
类似于
interface Callback {
onSuccess(int result);
onFailure(Throwable t);
}
对于Callback
结果,最好使用泛型类型(例如,GWT使用与上面的接口相同的泛型AsyncCallback<ResultType>
),但由于泛型在1.4中不可用,您可以使用Object
和强制转换,也可以使用不同的Callback
接口来获得不同的返回。与Swing/AWT中的任何*Listener
接口进行比较。