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、異なる戻り値に対して異なるインターフェイスを持つことができます。 . *ListenerSwing/AWTの任意のインターフェースと比較してください。

于 2013-08-21T07:25:23.673 に答える