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

java programming java8object oriented programming更新于 2024/10/22 23:14:00

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

在下面的示例中,我们在单击按钮时进行了回调。参见步骤 −

  • 创建一个具有单一方法 handleClick() 的接口 ClickEventHandler。

  • 创建一个实现此接口 ClickEventHandler 的 ClickHandler 类。

  • 创建一个 Button 类,当其 click 方法被调用时,它将调用 ClickHandler。

  • 测试应用程序。

示例

//步骤 1:为回调方法创建一个接口
interface ClickEventHandler {
   public void handleClick();
}

//步骤 2:创建回调处理程序
//实现上述接口
class ClickHandler implements ClickEventHandler {
   public void handleClick() {
      System.out.println("Clicked");
   }
}

//步骤 3:创建事件生成器类
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();
      //传递 clickHandler 执行默认操作
      button.onClick(clickHandler);

      Button button1 = new Button();
      //传递接口实现自己的操作
      button1.onClick(new ClickEventHandler() {
         @Override
          public void handleClick() {
            System.out.println("Button Clicked");
         }
      });
   }
}

输出

Clicked Button
Clicked

相关文章