Java -之- 回调函数

本文详细解释了回调函数的概念及其在C语言和Java中的应用方式。通过具体实例展示了如何在工具类中利用接口回调来测试方法执行时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

回调函数有这样一种定义:
1.回调就是该函数写在高层,低层通过一个函数指针来保存这个函数,在某个事件触发下,低层通过该函数指针调用高层那个函数(c语言);
2.在java中,通常是编写另外一个类或者类库的人规定一个接口,然后你来实现这个接口,然后把这个接口作为参数传递给别人的程序,别人的程序必要时就会通过那个接口来调用你编写的函数。

public interface CallBack {
public void execute();

}

这是别人定义的一个接口,下面是你对接口的实现:

public class TestObject {
/**
* 一个用来被测试的方法,进行了一个比较耗时的循环
*/
public static void testMethod() {
for (int i = 0; i < 100000000; i++) {

}
System.out.println("回调中···");
}
}

然后是一个工具类的实现:

public class Tools {

/**
* 测试函数使用时间,通过定义CallBack接口的execute方法
*
* @param callBack
*/
public void testTime(CallBack callBack) {
System.out.println("回调前···");
long begin = System.currentTimeMillis();// 测试起始时间
callBack.execute();// /进行回调操作
long end = System.currentTimeMillis();// 测试结束时间
System.out.println("[use time]:" + (end - begin));// 打印使用时间
System.out.println("回调后···");
}

public static void main(String[] args) {
Tools tool = new Tools();
tool.testTime(new CallBack() {
// 定义execute方法
public void execute() {
// 这里可以加放一个或多个要测试运行时间的方法
TestObject.testMethod();
}
});
}

}

在tools中,接口的对象callBack作为参数传递给了testTime()方法,通过接口的回调,调用了之前编写的testMethod()方法。
输出:

回调前···
回调中···
[use time]:94
回调后···


回调函数还有个特征:不是我来调用你,而是你来调用我。
这里的我就是“testTime”,你就是"execute"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值