欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java回调接口

程序员文章站 2022-07-04 09:47:57
...
java回调接口,即接口回调,我理解为:方法methodXX的参数为接口Ixx,当我们调用方法methodXX的时候就可以动态的实现接口Ixx中的方法了。
参照如下代码:

/**
 * 无参数的回调接口
 * 
 * @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 结束。#######