java回调函数问题?

java回调函数问题?


交互式爱情
浏览 459回答 1
1回答

炎炎设计

下面使用java回调函数来实现一个测试函数运行时间的工具类:  如果我们要测试一个类的方法的执行时间,通常我们会这样做:  java 代码  public&nbsp;&nbsp; class&nbsp; TestObject {  /**  * 一个用来被测试的方法,进行了一个比较耗时的循环  */  public&nbsp;&nbsp; static&nbsp;&nbsp; void&nbsp; testMethod(){  for ( int&nbsp; i= 0 ; i< 100000000 ; i++){  }  }  /**  * 一个简单的测试方法执行时间的方法  */  public&nbsp;&nbsp; void&nbsp; testTime(){  long&nbsp; begin = System.currentTimeMillis(); //测试起始时间  testMethod(); //测试方法  long&nbsp; end = System.currentTimeMillis(); //测试结束时间  System.out.println("[use time]:"&nbsp; + (end - begin)); //打印使用时间  }  public&nbsp;&nbsp; static&nbsp;&nbsp; void&nbsp; main(String[] args) {  TestObject test=new&nbsp; TestObject();  test.testTime();  }  }  大家看到了testTime()方法,就只有"//测试方法"是需要改变的,下面我们来做一个函数实现相同功能但更灵活:  首先定一个回调接口:  java 代码  public&nbsp;&nbsp; interface&nbsp; CallBack {  //执行回调操作的方法  void&nbsp; execute();  }  然后再写一个工具类:  java 代码  public&nbsp;&nbsp; class&nbsp; Tools {  /**  * 测试函数使用时间,通过定义CallBack接口的execute方法  * @param callBack  */  public&nbsp;&nbsp; void&nbsp; testTime(CallBack callBack) {  long&nbsp; begin = System.currentTimeMillis(); //测试起始时间  callBack.execute(); ///进行回调操作  long&nbsp; end = System.currentTimeMillis(); //测试结束时间  System.out.println("[use time]:"&nbsp; + (end - begin)); //打印使用时间  }  public&nbsp;&nbsp; static&nbsp;&nbsp; void&nbsp; main(String[] args) {  Tools tool = new&nbsp; Tools();  tool.testTime(new&nbsp; CallBack(){  //定义execute方法  public&nbsp;&nbsp; void&nbsp; execute(){  //这里可以加放一个或多个要测试运行时间的方法  TestObject.testMethod();  }  });  }  }  大家看到,testTime()传入定义callback接口的execute()方法就可以实现回调功能
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java