`
步行者
  • 浏览: 167581 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

callback 的 java实现

    博客分类:
  • JAVA
阅读更多

下面是一个JS的callback实现

 

 

 var callback = function(){
    print(">>> callback()");
 };
 var func = function(cb){
    print(">>> func()");
    cb();
 };
 func(callback);
 

java中函数不是一级元素(参数和返回值只能是对象,不能为函数),所以不能写出像上面那样简洁地实现callback,

但Java通过OO的方式同样可以模拟一个callback,代码如下

 

 

interface CallbackHolder {
	void callback();
}

interface CallbackUser {
	void func(CallbackHolder callbackHolder);
}

public class TestCallBack {
	public static void main(String[] args) {
		new CallbackUser() {
			public void func(CallbackHolder callbackHolder) {
				System.out.println(">>> func()");
				callbackHolder.callback();
			}
		}.func(new CallbackHolder() {
			public void callback() {
				System.out.println(">>> callback()");
			}
		});
	}
}
 

运行TestCallBack 类,输出如下(与JS输出一致):

 

 

    >>> func()

    >>> callback()

2
0
分享到:
评论
1 楼 goto0917 2011-08-19  
HibernateCallback就是例子

相关推荐

    java CallBack(回调函数)

    简要说明接口回调:即使实现接口类的引用赋值给该接口申明的变量,然后该变量就可以调用接口中的方法了(当接口变量调用接口中的方法的时候,实际上我们处理的是该接口实现类中的相应的函数的实现部分)。

    JAVA_API1.6文档(中文)

    java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义...

    Callback_Androidjni_AndoidJNI层到Java层的调用_android_android回调_

    例子中包含Android 应用程序和JNI的程序,实现充JNI到java层的回调

    Java 1.6 API 中文 New

    java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了...

    oss文件上传(带回调)

    springboot + +oss + thymeleaf 实现的小demo , oss文件上传,根据oss链接生成二维码.

    nodejs调用建行互联网银企被扫支付接口加密及验签Demo+java封装jar包

    nodejs调用java可以通过child_process模块中的spawn()函数实现。 var spawn = require('child_process').spawn;  nodejsJava.encryptccbParam=function(flag,param,pubKey,callback){//必须传入4个参数}  

    JavaAPI1.6中文chm文档 part1

    java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义...

    java api最新7.0

    java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了...

    okhttp3.0二次封装(独立的3个java文件封装的)

    代码很简单,只有三个Java文件,建议下载后将Java文件拷贝到工程中使用。 封装的功能有: 一般的get请求 一般的post请求 一般的put请求 一般的delete请求 上传单个文件(包含进度) 上传list集合文件 上传map...

    JavaAPI中文chm文档 part2

    java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义...

    java jdk-api-1.6 中文 chmd

    java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义...

    Android JNI多线程编程回调JAVA函数

    通过JNI接口静态注册的native方法去创建线程,同时提供native回调Java的方法。通过这个框架可以去实现线程监听某一个状态,然后回调Java的方法(如发消息去通知顶层,实现显示)

    设计模式Callback介绍与实例

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

    java乐器源码-weixinapi:Java实现的微信API接口SDK

    Java实现的微信API接口SDK 注意:拒绝996工作制公司请使用本项目。 开发者 作者: marker 邮箱: 博客: 微信公众号:(欢迎关注支持) Maven 坐标 <groupId>com.wuweibi</groupId> <artifactId>weixinapi ...

    java事件处理机制ppt

    java事件处理机制ppt 有3种角色: 1.event object:就是事件产生时具体的“事件”,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之...在windows程序设计里边这种相应使用callback机制来实现的

    [Java参考文档]

    java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义...

    java面试宝典

    76、什么是java序列化,如何实现java序列化? 18 77、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 18 78、abstract class Name { private String name; public abstract boolean isStupidName...

Global site tag (gtag.js) - Google Analytics