下面使用java回调函数来实现一个测试函数运行时间的工具类:
如果我们要测试一个类的方法的执行时间,通常我们会这样做:
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()方法,就只有"//测试方法"是需要改变的,下面我们来做一个函数实现相同功能但更灵活:
首先定一个回调接口:
java 代码
-
public
interface
CallBack {
-
-
void
execute();
-
}
然后再写一个工具类:
java 代码
-
public
class
Tools {
-
-
-
-
-
-
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(){
-
-
public
void
execute(){
-
-
TestObject.testMethod();
-
}
-
});
-
}
-
-
}
大家看到,testTime()传入定义callback接口的execute()方法就可以实现回调功能
分享到:
相关推荐
10.8.2 使用专门的监听器实现回调 448 10.8.3 为全部实体配置默认监听器 450 10.8.4 排除监听器 452 10.9 本章小结 455 第11章 JPA的查询支持 456 11.1 查询API 457 11.1.1 面向对象的JPQL 457 11.1.2 查询API简介 ...
12.1.5 使用回调213 12.1.6 产生更多的交替操作214 12.2 性能测试215 12.2.1 在PutTakeTest中增加计时功能215 12.2.2 多种算法的比较217 12.2.3 响应性衡量218 12.3 避免性能测试的陷阱220 12.3.1 垃圾回收...
许多人都熟悉事件处理器和回调函数,即注册一个对象,它包含会在事件发 生时使用的一个方法。Lambda使人更容易在Java中广泛应用这种思想。简单来说,Lambda和它 的朋友“方法引用”让你在做其他事情的过程中,可以...
2.5.4 使用回调函数监视请求 2.5.5 完整的生命周期 2.6 Ajax有何不同 2.7 小结 2.8 资源 第3章 使AjaX秩序井然 3.1 从混沌到秩序 3.1.1 模式:创造通用的词汇表 3.1.2 重构与Ajax 3.1.3 保持均衡 3.1.4 重构实战 3.2...
12.3.4 实体监听器和回调 12.4 小结 第13章 优化抓取和高速缓存 13.1 定义全局抓取计划 13.1.1 对象获取选项 13.1.2 延迟的默认抓取计划 13.1.3 理解代理 13.1.4 禁用代理生成 ...
8.3.1 使用模板和回调机制 8.3.2 Spring为不同持久化技术所提供的模板类 8.4 数据源 8.4.1 配置一个数据源 8.4.2 获取JNDI数据源 8.4.3 Spring的数据源实现类 8.5 小结 第9章 Spring的事务管理 9.1 数据库事务基础...
8.3.1 使用模板和回调机制 8.3.2 Spring为不同持久化技术所提供的模板类 8.4 数据源 8.4.1 配置一个数据源 8.4.2 获取JNDI数据源 8.4.3 Spring的数据源实现类 8.5 小结 第9章 Spring的事务管理 9.1 数据库事务基础...
4.10.3抽象方法与回调函数171 4.11最终类与最终方法173 4.12接口与多重继承174 4.12.1接口的定义174 4.12.2接口的继承175 4.12.3接口的实现177 4.13内部类179 4.13.1内部类的定义179 4.13.2内部类访问外部类...
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,...用户输入查询请求后,会优先在缓存系统查询,查不到则使用回调函数去源数据库查询,再将查询结果存入缓存系统并返回给用户).zip
基本数据类型的包装类 •八大数据类型的包装类分别为:Byte、Short、Integer、Long、Character、 Float、Double、Boolean。...函数式接口中被实现方法的第一个参数作为调用者,后面的参数全部传给该...
11.6.4 回调机制 336 11.7 反外挂技术 338 11.7.1 防止加速器 338 11.7.2 防止分析伪造网络包 339 11.7.3 防止逆向工程 341 11.7.4 防止代码钩子 344 11.7.5 惩戒外挂作弊者 344 11.7.6 安全地将信息传递给服务器 ...
11.6.4 回调机制 336 11.7 反外挂技术 338 11.7.1 防止加速器 338 11.7.2 防止分析伪造网络包 339 11.7.3 防止逆向工程 341 11.7.4 防止代码钩子 344 11.7.5 惩戒外挂作弊者 344 11.7.6 安全地将信息传递给服务器 ...
Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 中收集的小功能点 asp.net2.0中的webpart使用小记 2.0问题、错误解决办法 ASP.NET 2.0...