0

我需要转换如下同步方法:

method (String, String, Object)

到异步方法。

主要问题是我们使用 Java 1.4,我不能使用 Executor,Future,...

有任何想法吗?

4

1 回答 1

1

定义一个回调接口(如果尚不可用)并使您的方法将接口作为参数。该方法将关闭并完成其工作,当它完成时,它会调用回调。

例子:

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 中的任何接口进行比较。

于 2013-08-21T07:25:23.673 回答