Java回调理解 (step by step)

时间:2023-03-09 07:58:29
Java回调理解 (step by step)

在网上搜索了很多篇关于java回调函数的文章,自己也来试了一下写了这篇博客,可能有些地方理解不到位,烦请各位大大指正。

计算机程序设计中。回调函数。或简称回调。是指通过函数參数传递到其他代码的,某一块

title=%E5%8F%AF%E6%89%A7%E8%A1%8C%E4%BB%A3%E7%A0%81&action=edit&redlink=1" style="color:rgb(202,0,0); text-decoration:none">可运行代码

引用

这一设计同意了底层代码调用在高层定义的子程序

在Java里面,我们使用接口来实现回调。

模拟一个场景:一个Girl给她男朋友Man打电话,然后Man给她回复:

首先定义一个接口:

package mine.callback2;

public interface CallInterface {
void execute();
}

Girl:

package mine.callback2;

public class Girl {
public CallInterface ci; //保存一个接口引用
public void setCallFun(CallInterface ci){
this.ci=ci;
}
public void call(){
ci.execute(); //回调实现CallInterface接口Man中的方法
}
}

Man:

package mine.callback2;

public class Man implements CallInterface {

	@Override
public void execute() {
System.out.println("好的,女王大人");
} public static void main(String[] args) {
Girl girl = new Girl();
girl.setCallFun(new Man());
girl.call();
}
}

接口不变,实现实现以上同样的功能:

Girl:

package mine.callback1;

public class Girl {
public CallInterface ci;
public void CallFun(CallInterface ci){
System.out.println("陪我去逛街,好么?");
ci.execute(); //进行回调操作
}
}

Man:

package mine.callback1;

public class Man {

	public static void answerA() {
System.out.println("好的,女王大人!");
}
public static void answerB(){
System.out.println("对不起,我这儿还有任务没完毕,以后有时间陪你噢.");
}
public static void main(String[] args) {
Girl girl = new Girl();
girl.CallFun(new CallInterface() { @Override
public void execute() {
//这里能够调用很多其它的回答
answerB();
}
});
}
}

假设思路不够清晰能够看以下这篇文章:http://kidult.iteye.com/blog/148982