Java中回调函数的原理是什么

  介绍

本篇文章为大家展示了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   null

Java中回调函数的原理是什么