如何在Java 1.4中将同步方法转换为异步方法



我需要转换一个类似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接口进行比较。

相关内容

  • 没有找到相关文章

最新更新