2010-11-12 100 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的等等。通常你可以註冊多個回調當然。