介绍
本篇文章为大家展示了Java中回调函数的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强> Java回调函数例子,及其原理,与代理模式的区别强>
<强>回调函数强>
应用程序(应用程序)会时常通过API调用库里所预先备好的函数。但是有些库函数(库函数)却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务。这个被传入的,后又被调用的函数就称为回调函数(回调函数)。
作用,可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型,某些限制条件(如返回值为int)的被调用函数。
<强>例子强>
一个计算函数运行时间的工具类,正常方法
/* * ,* @Auther:体外循环 ,* @Date: 2019/1/17 16:32 ,* @Description: ,*/public class  RunningTime { ,/* * ,,*,一个用来被测试的方法,进行了一个比较耗时的循环 ,,*/,,public static , void testMethod () { ,,,for (, int i=, 0,,, i<, 100000000,,,我+ +){ ,,,} ,,} ,/* * ,,*,一个简单的测试方法执行时间的方法 ,,*/public 才能;void  testTime () { ,,,long begin =, System.currentTimeMillis();,//测试起始时间 ,,,testMethod();,//测试方法 ,,,long 最终获得=,System.currentTimeMillis();,//测试结束时间 ,,,System.out.println (“[use 时间]:“,+,(最终获得;安康;开始),,//打印使用时间 ,,} public 才能;static  void main (String [], args), { ,,,RunningTime 测试=new RunningTime (); ,,,test.testTime (); ,,} }
<>强创建回调函数接口强>
public interface CallBack {//才能执行回调操作的方法 void 才能执行(); }
<>强回调函数强>
/* * ,* @Auther:体外循环 ,* @Date: 2019/1/17 泰 ,* @Description: ,*/public class  Tools { ,/* * ,,*,测试函数使用时间,通过定义回调接口的执行方法 ,,*,@param 回调 ,,*/,,public void testTime (CallBack 回调),{ ,,,long begin =, System.currentTimeMillis();,//测试起始时间 ,,,callBack.execute();,///进行回调操作 ,,,long 最终获得=,System.currentTimeMillis();,//测试结束时间 ,,,System.out.println (“[use 时间]:“,+,(最终获得;安康;开始),,//打印使用时间 ,,} ,,public static , void main (String [], args), { ,,,Tools tool =, new 工具(); ,,,tool.testTime (new 回调(){ ,,,,,//定义执行方法 ,,,,,public , void 执行(){ ,,,,,,,//这里可以加放一个或多个要测试运行时间的方法 ,,,,,,,RunningTime.testMethod (); ,,,,,} ,,,}); ,,} }
<>强为什么叫回调函数强>
我们观看一下程序运行的流程,工具→回调→工具,顾为回调函数。
<强>代理模式强>
//接口 public interface  CallBack {//才能执行回调操作的方法 void 才能执行(); }//实现类 public class  MyCallBack implements 调{ @Override才能 public 才能;void 执行(),{ ,,,MyCallBack.testMethod (); ,,} ,,public static , void testMethod () { ,,,for (, int i=, 0,,, i<, 100000000,,,我+ +){ ,,,} ,,} }//代理类 public class  Proxy implements CallBack  { private 才能CallBack 回调; public 才能;代理(CallBack 回调){ ,,,this.callBack =,回调; ,,} @Override才能 public 才能;void 执行(),{ ,,,callBack.execute (); ,,} }//调用方法类 public class  Tools { ,/* * ,,*,测试函数使用时间,通过定义回调接口的执行方法 ,,*,@param 回调 ,,*/,,public void testTime (CallBack 回调),{ ,,,long begin =, System.currentTimeMillis();,//测试起始时间 ,,,callBack.execute();,///进行回调操作 ,,,long 最终获得=,System.currentTimeMillis();,//测试结束时间 ,,,System.out.println (“[use 时间]:“,+,(最终获得;安康;开始),,//打印使用时间 ,,} ,,public static , void main (String [], args), { ,,,Tools tool =, new 工具(); null null null null nullJava中回调函数的原理是什么