Java 中使用介面回撥\n


在事件驅動程式設計中,我們將引用傳遞給一個函式,該函式將在事件發生時被呼叫。此機制稱為回撥。Java 不支援函式指標。因此我們無法實現相同的方向。但使用介面我們可以非常輕鬆地實現相同的功能。

在下面的示例中,我們在按鈕被點選時建立了一個回撥。請參閱步驟 −

  • 建立一個具有單個方法 handleClick() 的介面 ClickEventHandler。

  • 建立一個 ClickHandler 類,該類實現了此介面 ClickEventHandler。

  • 建立 Button 類,該類將在呼叫其 click 方法時呼叫 ClickHandler。

  • 測試應用程式。

示例

線上演示

//Step 1: Create an interface for the callback method
interface ClickEventHandler {
   public void handleClick();
}

//Step 2: Create a callback handler
//implementing the above interface
class ClickHandler implements ClickEventHandler {
   public void handleClick() {
      System.out.println("Clicked");
   }
}

//Step 3: Create event generator class
class Button {
   public void onClick(ClickEventHandler clickHandler) {
      clickHandler.handleClick();
   }
}

public class Tester {
   public static void main(String[] args) {
      Button button = new Button();
      ClickHandler clickHandler = new ClickHandler();
      //pass the clickHandler to do the default operation
      button.onClick(clickHandler);

      Button button1 = new Button();
      //pass the interface to implement own operation
      button1.onClick(new ClickEventHandler() {
         @Override
         public void handleClick() {
            System.out.println("Button Clicked");
         }
      });
   }
}

輸出

Clicked Button
Clicked

更新於: 2020-06-18

4K+ 瀏覽量

啟動你的 職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.