上面一篇介绍了一下对回调函数的基本理解和一个简单的比较抽象的例子,那么下面通过一个比较实际的例子来看看对回调函数的运用
比如现在我们要写一个测试类方法运行时间的程序,按照一般的程序思维,我们会写出下面的代码
- public class TestTime {
- /**
- * 一个用来被测试的方法,进行了一个比较耗时的循环
- */
- public static void testMethod(){
- for ( int i= 0 ; i< 100000000 ; i++){
- }
- }
- /**
- * 一个简单的测试方法执行时间的方法
- */
- public void testTime(){
- long begin = System.currentTimeMillis(); //测试起始时间
- testMethod(); //测试方法
- long end = System.currentTimeMillis(); //测试结束时间
- System.out.println("[use time]:" + (end - begin)); //打印使用时间
- }
- public static void main(String[] args) {
- TestTime test=new TestTime();
- test.testTime();
- }
- }
- public interface CallBack {
- //执行回调操作的方法
- void execute();
- }
然后后定义一个工具类:
- public class Tools {
- /**
- * 测试函数使用时间,通过定义CallBack接口的execute方法
- * @param callBack
- */
- public void testTime(CallBack callBack) {
- long begin = System.currentTimeMillis(); //测试起始时间
- callBack.execute(); ///进行回调操作
- long end = System.currentTimeMillis(); //测试结束时间
- System.out.println("[use time]:" + (end - begin)); //打印使用时间
- }
- public static void main(String[] args) {
- Tools tool = new Tools();
- tool.testTime(new CallBack(){
- //定义execute方法
- public void execute(){
- //这里可以加放一个或多个要测试运行时间的方法
- TestTime.testMethod();
- }
- });
- }
- }