java回调接口,即接口回调,我理解为:方法methodXX的参数为接口Ixx,当我们调用方法methodXX的时候就可以动态的实现接口Ixx中的方法了。
参照如下代码:
/**
* 无参数的回调接口
*
* @author 张国明 <br/>
* 2012-8-19 下午7:59:31
*
*/
public interface ICallBackOne {
/**
* 执行回调操作的方法
*/
void execute();
}
/**
* 有参数的回调接口
*
* @author 张国明 <br/>
* 2012-8-19 下午10:19:13
*
*/
public interface ICallBackTwo {
/**
* 执行回调操作的方法
*
* @param name
* name
* @param age
* age
*/
void execute(String name, int age);
}
/**
* 回调接口的实现方法
*
* @author 张国明 <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 张国明<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() {
public void execute() {
System.out.println("调用 回调接口one中的方法");
}
};
callBackMethod.executeCallBackOne(callBackOne);
final ICallBackTwo callBackTwo = new ICallBackTwo() {
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 结束。#######