使用 Java 中的接口进行回调\n


在事件驱动编程的情况下,我们传递了一个函数引用,该函数将在发生事件时被调用。此机制称为回调。Java 不支持函数指针。因此,我们不能实现相同的方向。但使用接口,我们可以非常容易地实现相同的功能。

在下面的示例中,我们在单击 button 时进行了回调。请看步骤−

  • 创建一个接口 ClickEventHandler,其中包含一个方法 handleClick()。

  • 创建一个 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

更新于: 18-Jun-2020

4K+ 浏览量

职业生涯起步

通过完成课程获得认证

开始
广告