对于事件驱动的编程,我们将传递给函数的引用,该函数将在事件发生时被调用。此机制称为回调。Java不支持函数指针。因此我们不能实现相同的方向。但是使用接口,我们可以很容易地实现相同的目的。
在下面的示例中,单击按钮时我们进行了回调。参见步骤-
使用单个方法创建接口ClickEventHandler handleClick()
。
创建一个实现此接口ClickEventHandler的ClickHandler类。
创建一个Button类,在单击click方法时将调用ClickHandler。
测试应用程序。
//Step 1: Create an interface for the callback method 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