本帖最后由 刘春发 于 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;
}
}); |