java回调接口
程序员文章站
2022-07-04 09:47:57
...
java回调接口,即接口回调,我理解为:方法methodXX的参数为接口Ixx,当我们调用方法methodXX的时候就可以动态的实现接口Ixx中的方法了。
参照如下代码:
输出结果:
**** 回调 ICallBackOne 开始...****
调用 回调接口one中的方法
*****回调 ICallBackOne 结束。*****
###### 回调 ICallBackTwo 开始...######
调用 回调接口 Two 中的方法 张国明 的年龄是: 28
#######回调 ICallBackTwo 结束。#######
参照如下代码:
/** * 无参数的回调接口 * * @author 张国明 guomingzhang2008@gmail.com <br/> * 2012-8-19 下午7:59:31 * */ public interface ICallBackOne { /** * 执行回调操作的方法 */ void execute(); }
/** * 有参数的回调接口 * * @author 张国明 guomingzhang2008@gmail.com <br/> * 2012-8-19 下午10:19:13 * */ public interface ICallBackTwo { /** * 执行回调操作的方法 * * @param name * name * @param age * age */ void execute(String name, int age); }
/** * 回调接口的实现方法 * * @author 张国明 guomingzhang2008@gmail.com <br/> * 2012-8-19 下午10:13:50 * */ public class CallBackImpl { /** * @param callBack * 回调接口 */ public void executeCallBackOne(final ICallBackOne callBack) { System.out.println("**** 回调 ICallBackOne 开始...****"); callBack.execute(); System.out.println("*****回调 ICallBackOne 结束。*****"); } /** * @param callBack * 回调接口 * @param name * name * @param age * age */ public void executeCallBackTwo(final ICallBackTwo callBack, final String name, final int age) { System.out.println(); System.out.println("###### 回调 ICallBackTwo 开始...######"); callBack.execute(name, age); System.out.println("#######回调 ICallBackTwo 结束。#######"); } }
/** * 测试类 * * @author 张国明 guomingzhang2008@gmail.com <br/> * 2012-8-19 下午10:14:01 * */ public class Test { /** * @param args * arg */ public static void main(final String[] args) { final CallBackImpl callBackMethod = new CallBackImpl(); final ICallBackOne callBackOne = new ICallBackOne() { @Override public void execute() { System.out.println("调用 回调接口one中的方法"); } }; callBackMethod.executeCallBackOne(callBackOne); final ICallBackTwo callBackTwo = new ICallBackTwo() { @Override public void execute(final String name, final int age) { System.out.println("调用 回调接口 Two 中的方法\t" + name + " 的年龄是: " + age); } }; callBackMethod.executeCallBackTwo(callBackTwo, "张国明", 28); } }
输出结果:
**** 回调 ICallBackOne 开始...****
调用 回调接口one中的方法
*****回调 ICallBackOne 结束。*****
###### 回调 ICallBackTwo 开始...######
调用 回调接口 Two 中的方法 张国明 的年龄是: 28
#######回调 ICallBackTwo 结束。#######
下一篇: 澳洲红蟹可以吃吗