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() {
@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 结束。#######