我们经常会用System.currentTimeMillis()在事件开始前和结束后设置一个开始时间和结束时间,用他们的差作为程序执行的时间。
我们不妨定义一个接口用java回调来实现动态计算。
接口定义:
package com.hd123.h5.ejb.verctrl;
public interface CallBack {
public void callBack();
}
然后是实现这个接口
package com.hd123.h5.ejb.verctrl;
public class Run {
//由于接口中的 callBack方法是没有定义的,所以用一个接口对象执行callBack()方法,其实是未知的,我们具体需要实现的方法
//可以通过callBack(),这个方法的不同实现来实现动态计时。
private void run(CallBack callBack, String event) {
long startTime = System.currentTimeMillis();
callBack.callBack();
long endTime = System.currentTimeMillis();
System.out.print("执行" + event + "共消耗" + (endTime - startTime) + "ms");
}
public static void main(String[] args) {
Run r=new Run();
//这里动态的实现callBack方法。
r.run(new CallBack(){
public void callBack() {
for(int i=0;i<999;i++){
for(int j=i+1;j<99999;j++){
}
}
}
}, "循环");
}
}