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+ 浏览量

启动你的 职业

通过完成课程获得认证

开始
广告