对于Proxy.getProxyClass是 返回代理类的 java.lang.Class 对象,并向其提供类加载器和接口数组。
而Proxy.newProxyInstance 才是返回一个指定接口的代理类实例,该接口可以将方法调用指派到指定的调用处理程序。
这是视频里实现一个实例类的代理:
Collection collection2 = (Collection) Proxy.newProxyInstance(
Collection.class.getClassLoader(),
new Class[] { Collection.class },
new InvocationHandler() {
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
ArrayList arrList = new ArrayList();
long starTime = System.currentTimeMillis();
Object arrListf = method.invoke(arrList, args);
System.out.println(method.getName() + "方法的运行时间: " + (System.currentTimeMillis() - starTime));
return arrListf;
}
});
|