黑马程序员技术交流社区
标题:
看完代理,可以将函数的运行时间取出来吗?<已解决>
[打印本页]
作者:
刘春发
时间:
2012-6-14 19:56
标题:
看完代理,可以将函数的运行时间取出来吗?<已解决>
本帖最后由 刘春发 于 2012-6-14 22:25 编辑
Collection proxy3 = (Collection)Proxy.newProxyInstance(
Collection.class.getClassLoader(),//定义代理类的类加载器
new Class[]{Collection.class},//代理类要实现的接口列表
new InvocationHandler(){//指派方法调用的调用处理程序
ArrayList target = new ArrayList();
public Object invoke(Object proxy, //调用方法的代理实例
Method method,//对应于在代理实例上调用的接口方法的 Method 实例
Object[] args//包含传入代理实例上方法调用的参数值的对象数组,如果接口方法不使用参数,则为 null
) throws Throwable {
long beginTime = System.currentTimeMillis();
Object retVal = method.invoke(target, args);
long endTime = System.currentTimeMillis();
System.out.println("runtime: " + (endTime - beginTime));//有没有办法将 (endTime - beginTime)的值取出来??
return retVal;
}
});
作者:
龚龙
时间:
2012-6-14 21:47
本帖最后由 龚龙 于 2012-6-14 21:48 编辑
可以啊,你在外面定义一个成员变量不就行了,如:
class a{
private long costTime; //定义成员变量记住消耗时间
public static void main(String[] args){
Collection proxy3 = (Collection)Proxy.newProxyInstance(
......
long beginTime = System.currentTimeMillis();
Object retVal = method.invoke(target, args);
long endTime = System.currentTimeMillis();
costTime = endTime-beginTime;
return ......
)
syso(costTime);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2