`
lj_1129
  • 浏览: 2144 次
文章分类
社区版块
存档分类
最新评论
阅读更多

 

import java.util.Random;

 

import org.junit.Test;

/**

 *

 * @author liangjun

 * @descriptionTODO  利用回调函数记录方法运行时间,处理异常等

 */

public class CallBackDemo {

   

    @Test

    public void testLog() {

        final CallBackDemo app = new CallBackDemo();

        LogUtil.getInstance().log(new CallBack() {

           publicvoid execute() throws InterruptedException {

              app.run();

           }

       });

    }

   

    protected void run() throws InterruptedException {

        Thread.sleep(new Random().nextInt(2000));

        System.out.println("I believe i can fly!");

        throw new RuntimeException("抛出运行时异常!");

    }

}

 

/**

 *

 * @author liangjun

 * @descriptionTODO回调函数接口

 */

interface CallBack {

    void execute() throws InterruptedException;

}

 

/**

 *

 * @author liangjun

 * @descriptionTODO 记录方法运行时间;处理异常;

 */

class LogUtil {

    private static LogUtil log;

    private LogUtil(){

    }

   

    public static LogUtil getInstance() {

       if(null == log) {

           synchronized (LogUtil.class) {

              if(null == log) {

                  log = new LogUtil();

              }

           }

       }

      

       returnlog;

    }

   

    publicvoid log (CallBack cb) {

       long start = System.currentTimeMillis();

       try {

           cb.execute();

       }catch(Exception e) {

           System.out.println(String.format("利用回调函数处理: %s", e.getMessage()));

       }

       long end = System.currentTimeMillis();

       System.out.println(String.format("%s 运行时间: %s ms!", cb.getClass().getName(),(end - start)));

    }

}

 

分享到:
评论

相关推荐

    java 回调函数 实现

    java 回调函数 自己模拟实现 使用了接口来完成

    Java 回调函数详解及使用

    Java 回调函数详解 前言: C语言中回调函数解释: 回调函数(Callback Function)是怎样一种函数呢? 函数是用来被调用的,我们调用函数的方法有两种:  直接调用:在函数A的函数体里通过书写函数B的函数名来调用...

    Java 回调函数详解及使用.rar

    Java 回调函数详解及使用

    亲测可用,java 成功调用dll函数。包含调用回调函数,springboot版本。最近由于公司业务需要,要调用dll文件,用JNA调用。

    亲测可用,java 成功调用dll函数。包含调用回调函数,springboot版本。最近由于公司业务需要,要调用dll文件,用JNA调用。

    Java回调函数与观察者模式实例代码

    主要介绍了Java回调函数与观察者模式实例代码,简单介绍了使用观察者模式的场景,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

    java实现企业微信回调配置案例

    java实现--企业微信回调配置案例及工具代码

    Java回调机制

     下面使用java回调函数来实现一个测试函数运行时间的工具类:如果我们要测试一个类的方法的执行时间,通常我们会这样做: public class TestObject {  /**  * 一个用来被测试的方法,进行了一个比较耗时的...

    C#中异步回调函数用法实例

    主要介绍了C#中异步回调函数用法,实例分析了异步回调函数的定义及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    javascript的回调函数应用示例

    回调函数概念:回调函数就是一个通过函数指针调用的函数。... 使用回调函数的原因:可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值

    关于javascript 回调函数中变量作用域的讨论

    在使用DWR的时候,回调函数可以作为第一个或者最后一个参数出现,如: JScript code function callBack(result){ } myDwrService.doSomething(param1,param2,callBack);//DWR的推荐方式 //或者 myDwrService....

    设计模式Callback介绍与实例

    java回调机制: 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。 >同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用; >回 调:一种...

    理解javascript回调函数

    把函数作为参数传入到另一个函数中。这个函数就是所谓的回调函数 经常遇到这样一种情况,某个项目的A层和B层是由不同的人员协同完成.A层负责功能funA,B层负责funcB。...这时候就需要使用回调函数 因此,回调本质上是

    Java中回调方法使用范例

    一个实现回调方式的示例,简单来说回调方法的函数参数是接口,是方法

    Java同步回调函数

    1.概述  软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。  同步调用:一种阻塞式调用,调用方...  所谓回调,是客户程序CLIENT调用服务程序SERVER中的某个函数

    一个超简单的jQuery回调函数例子(分享)

    jQuery回调函数简单使用 比如说,我们想要点击某个按钮后触发事件, 先把一些指定内容给隐藏掉, 然后跳出相关信息的对话框。 如果使用普通的方法, 不用回调函数的话, 会有怎么样的效果呢? 效果是先弹出对话框再...

    详解Java回调的原理与实现

    回调函数,顾名思义,用于回调的函数。回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机。

    C++JNI多线程回调java

    C++使用JNI多线程回调java代码例子,因为依赖了我的一些库和头文件,没有传上去,编译不过,但是大家可以参考一下,如何使用C++多线程调用java函数

    PHP回调函数及匿名函数概念与用法详解

    而在php调用回调函数,不想c以及java那样直接使用函数名作为函数参数,而是在php中使用函数对应的字符串名称执行 1.1、无参数回调 <?php //无参数回调 function callback(){ echo 'execute no parameters ...

    微信小程序中使用javascript 回调函数

    微信小程序中使用javascript 回调函数 回调函数原理: 我现在出发,到了通知你” 这是一个异步的流程,“我出发”这个过程中(函数执行),“你”可以去做任何事,“到了”(函数执行完毕)“通知你”(回调)进行...

Global site tag (gtag.js) - Google Analytics