2010-11-12 8 views
7

Est-ce que quelqu'un peut vous aider à implémenter des méthodes de rappel utilisant des annotations dans Java?Méthodes de rappel Java

Plus de détails -

Fondamentalement, j'ai une méthode java qui ne retourne rien [vide] mais je voulais qu'il revienne l'état de l'objet à l'appelant sans changer la signature de la méthode en utilisant la fonction de rappel. J'espère que cela pourra aider.

Merci!

+0

Je vous suggère de donner un peu plus de détails. Je ne pense pas que vous pouvez mettre en œuvre des méthodes utilisant des annotations, vous voulez probablement dire autre chose. – krico

Répondre

7

Très simple.

Dans une classe ou d'une interface quelque part, vous avez une méthode qui devrait être appelé: [modificateur d'accès] nom [type de retour] ([liste des paramètres]) ...

par exemple:

public void callback() 

Ensuite, dans une classe, vous pouvez remplacer cette méthode, ou l'implémenter, ou quelque chose. Ensuite, dans le code qui effectue le rappel, vous prenez un argument du type de la classe qui a la méthode de rappel. Par exemple:

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 vous voulez voir des exemples de méthodes de rappel de l'API Java, regardez MouseListener, MouseMotionListener, KeyListener et ainsi de suite. Habituellement, vous pouvez enregistrer plus d'un rappel, bien sûr.

Questions connexes