欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

callback 的 java实现

程序员文章站 2022-03-13 10:51:53
...

下面是一个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()

相关标签: Java OO