2010-11-12 68 views
7

任何人都可以帮助如何实现回调方法在java中使用注释?Java回调方法

更多细节 -

基本上,我有没有返回[空] Java方法,但我想它返回对象给调用者的状态不改变使用回调函数的方法签名。希望有所帮助。

谢谢!

+0

我建议你给一点细节。我不认为你可以使用注释实现方法,你可能意味着别的。 – krico 2010-11-12 12:45:35

回答

2

这是关于一个很好的教程:

http://slesinsky.org/brian/code/annotated_callback.html

虽然我不知道这是否是你考虑的事情。

+0

+1我:)甚至删除了我的答案。 – 2010-11-12 13:06:21

+0

是的......这些线条上的东西。你能帮助我一个完整的例子吗? – jagamot 2010-11-12 14:50:47

7

很简单。

在某些类或接口的地方,你有一个应该被调用的方法: [访问修饰符] [返回类型]名([参数列表])...

例如:

public void callback() 

然后在某些类中,您可以重写该方法或实现它,或者其他类。然后在执行回调的代码中,获取具有回调方法的类的类型的参数。例如:

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(); 
    } 
} 

如果你想看到的Java API中的回调方法的例子,看的MouseListener,的MouseMotionListener,KeyListener的等等。通常你可以注册多个回调当然。