/ / Ako previesť synchronizačnú metódu na asynchrónovú metódu v Java 1.4 [zatvorené] - java, java1.4

Ako previesť metódu synchronizácie na metódu async v jazyku Java 1.4 [closed] - java, java1.4

Potrebujem previesť synchronizačnú metódu, ako je nasledujúca:

method (String, String, Object)

na asynchrónnu metódu.

Hlavným problémom je, že pracujeme s programom Java 1.4 a nemôžem používať program Executor, Future, ...

Nejaké nápady?

odpovede:

1 pre odpoveď č. 1

Definujte rozhranie spätného volania (ak už neexistuje)k dispozícii) a urobte zo svojej metódy rozhranie ako parameter. Metóda pôjde preč a bude pracovať, a keď bude hotová, zavolá spätné volanie.

Príklad:

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

stáva

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

kde Callback je niečo ako

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

Uprednostňuje sa použitie generických typov pre internet Callback výsledok (napríklad GWT používa generický AsyncCallback<ResultType> totožné s rozhraním uvedeným vyššie), ale keďže generiká nie sú dostupné v 1.4, môžete ich použiť Object a obsadenie alebo rôzne Callback rozhrania pre rôzne výnosy. Porovnať s ktorýmkoľvek z *Listener rozhrania v Swing / AWT.