2010-11-12 28 views
7

¿Alguien puede ayudarme a cómo implementar métodos de devolución de llamada usando anotaciones en java?Métodos de devolución de llamada de Java

Más detalles -

Básicamente, tengo un método Java que devuelve nada [vacío], pero yo quería que devolver el estado del objeto a la persona que llama sin cambiar la firma del método utilizando la función de devolución de llamada. Espero que ayude.

Gracias!

+0

Te sugiero que des un poco más de detalle. No creo que puedas implementar métodos usando anotaciones, probablemente quieras decir algo más. – krico

Respuesta

7

muy simple.

En cierta clase o interfaz en algún lugar que tienen un método que debería llamarse: [modificador de acceso] [tipo de retorno] Nombre ([lista de parámetros]) ...

por ejemplo:

public void callback() 

Luego, en alguna clase, anulas ese método, o lo implementas, o algo. Luego, en el código que realiza la devolución de llamada, toma un argumento del tipo de la clase que tiene el método de devolución de llamada. Por ejemplo:

public interface Callback 
{ 
    public void callback(); 
} 



public class Callbackee implements Callback { 
    public void callback() 
    { 
     System.out.println("Hey, you called.");` 
    } 

    static{ 
    new Callbackee().doCallback(); 
    } 
} 

public class CallBacker { 
    Callback call; 

    public void registerCallback(Callback call) { 
     this.call=call; 
    } 

    //then just do the callback whenever you want. You can also, of course, use collections to register more than one callback: 

    public void doCallback() { 
     call.callback(); 
    } 
} 

Si desea ver ejemplos de métodos de devolución de llamada de la API de Java, mira MouseListener, MouseMotionListener, KeyListener y así sucesivamente. Por lo general, puede registrar más de una devolución de llamada, por supuesto.

Cuestiones relacionadas