Come usare Java callback

May 30

Callback in Java sono utili quando si ha bisogno di un metodo per accettare un riferimento a un altro metodo come argomento. Ad esempio, un metodo grafico che traccia potrebbe prendere un "peccato" o la funzione "coseno" come parametro. In Java non è possibile inviare puntatori alle funzioni come si può in C, quindi è necessario simulare callback attraverso l'uso di interfacce. È possibile passare una interfaccia come un argomento e quindi la relativa implementazione fornisce la versione del codice da eseguire.

istruzione

1 Aprire il file Java in un editor come Eclipse, Netbeans o JBuilder X.

2 Creare un'interfaccia e due classi che implementano l'interfaccia aggiungendo il seguente codice sopra la funzione principale:

Interfaccia Fruit {

callback_method void ();

}

classe di Apple implementa frutta {

callback_method public void () {

System.out.println("Callback - Apple");

}

}

Classe Banana Fruit implementa {

callback_method public void () {

System.out.println("Callback - Banana");

}

}

Ogni classe che implementa l'interfaccia deve avere una versione del metodo definito nell'interfaccia.

3 Creare una classe "chiamante" che ha un metodo per avviare la richiamata aggiungendo il codice:

class chiamante {

registro pubblico (frutta Frutta) {

fruit.callback_method();

}

}

Nell'esempio, il metodo del "registro" può prendere sia un "Apple" o "banana" come input e quindi eseguire l'abbinamento "callback_method" per quella versione.

4 Creare oggetti "chiamante", "Apple" e "banana" e poi passare entrambe le versioni della "Frutta" di metodo "registrare" dell'oggetto "chiamante", aggiungendo il seguente codice come funzione principale:

Main (string [] args) {public static void

chiamante chiamante = new chiamante ();

Frutta mela = nuovo Apple (); // Versione di Apple di frutta

Frutta banane = new Banana (); // Versione Banana di frutta

caller.register (mela); // Visualizza "richiamata - Apple"

caller.register (banana); // visualizza "richiamata - Banana"

}

In questo modo si evita di dover creare più versioni della classe "Caller" per ogni applicazione. Qualsiasi implementazione di "frutta" può essere passato al "chiamante", che carica il metodo di callback corrispondente per quella versione.

5 Salvare il file Java, compilare ed eseguire il programma per visualizzare i callback.