Java 回调函数
2024-09-14 02:14:02
下面使用java回调函数来实现一个测试函数运行时间的工具类:
如果我们要测试一个类的方法的执行时间,通常我们会这样做:
public class TestObject {
/**
* 一个用来被测试的方法,进行了一个比较耗时的循环
*/
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) {
TestObject test=new TestObject();
test.testTime();
}
}
大家看到了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(){
//这里可以加放一个或多个要测试运行时间的方法
TestObject.testMethod();
}
});
} }
大家看到,testTime()传入定义callback接口的execute()方法就可以实现回调功能
本文转自:http://kidult.iteye.com/blog/148982
最新文章
- SpringAOP之动态代理
- iOS Swift-元组tuples(The Swift Programming Language)
- SQL 2014新特性- Delayed durability
- 解决Android Studio 和 Android SDK Manager 无法在线更新的问题.
- 查看别人的css
- SqlSever基础 dateadd year,增加五年
- lua 中pairs 和 ipairs区别
- jquery上传插件uploadify 报错http error 302 解决方法之一
- Android开发手记(7) 按钮类控件的使用
- ACCESS 里面的坑
- mysql修改用户名和密码
- google protocol buffer的原理和使用(四)
- dede内容页调用图片集下所有图片方法!
- vue2.0路由进阶
- Docker Dockerfile
- [源码分析]ReentrantLock &; AbstractQueuedSynchronizer &; Condition
- Python001-操作MSSQL(Microsoft sql server)基础示例(一)
- HDU/HDOJ 1867 A + B for you again
- echart中间显示固定的字
- 原码,反码,补码,及Java中数字表示方法
热门文章
- Headfirst设计模式的C++实现——状态模式(State)
- linq递归
- mysql与Navicat for MySQL的衔接配置问题【原创】
- Apose 套打
- 青瓷qici - H5小游戏 抽奖机 “one-arm bandit”
- 解决使用 Composer 的时候提示输入 Token
- 工作流(Workflow)学习---基础知识整理
- 基于android混合开发的JsBridge技术学习
- BZOJ 1729: [Usaco2005 dec]Cow Patterns 牛的模式匹配
- csuoj 1353: Guessing the Number