我需要转换如下同步方法:
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
的接口来获得不同的返回. *Listener
与Swing/AWT 中的任何接口进行比较。