本文共 1388 字,大约阅读时间需要 4 分钟。
在网上搜索了很多篇关于java回调函数的文章,自己也来试了一下写了这篇博客,可能有些地方理解不到位,烦请各位大大指正。
在中。回调函数。或简称回调。是指通过传递到其他代码的,某一块的。
这一设计同意了代码调用在高层定义的。
在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(); } }); }}假设思路不够清晰能够看以下这篇文章:
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5129944.html,如需转载请自行联系原作者