/ / Come convertire il metodo di sincronizzazione in metodo asincrono in Java 1.4 [chiuso] - java, java1.4

Come convertire il metodo di sincronizzazione in metodo asincrono in Java 1.4 [chiuso] - java, java1.4

Devo convertire un metodo di sincronizzazione come il prossimo:

method (String, String, Object)

a un metodo asincrono.

Il problema principale è che lavoriamo con Java 1.4 e non posso usare Executor, Future, ...

Qualche idea?

risposte:

1 per risposta № 1

Definire un'interfaccia di callback (se non lo è giàdisponibile) e fai in modo che il tuo metodo prenda l'interfaccia come parametro. Il metodo si spegne e fa il suo lavoro, e quando è finito, chiama il callback.

Esempio:

int synchronousMethod(int arg0, String arg1) {
int result = doStuff();
return result;
}

diventa

void asynchronousMethod(int arg0, String arg1, Callback callback) {
try {
int result = doStuff();
} catch (Throwable t) {
callback.onFailure(t);
return;
}
callback.onSuccess(result);
}

dove Callback è qualcosa di simile

interface Callback {
onSuccess(int result);
onFailure(Throwable t);
}

È preferibile utilizzare tipi generici per il Callback risultato (GWT, ad esempio, utilizza un generico AsyncCallback<ResultType> che è identico all'interfaccia sopra), ma poiché i generici non sono disponibili in 1.4, è possibile utilizzare entrambi Object e lanciare o avere diversi Callback interfacce per rendimenti diversi. Confronta con uno dei *Listener interfacce in Swing / AWT.