次のように同期メソッドを変換する必要があります。
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の任意のインターフェースと比較してください。