本帖最后由 廖智 于 2012-12-9 11:30 编辑
package cn.itcasst.p1; import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.Collection; public class ProxyTest2 { /**
* @param args
* @throws Exception
* @throws NoSuchMethodException
*/
public static void main(String[] args) throws NoSuchMethodException, Exception {
// TODO Auto-generated method stub
Class clazzProxy1 = Proxy.getProxyClass(Collection.class.getClassLoader(),Collection.class);
//创建动态代理的实例。
Collection proxy3 = (Collection)Proxy.newProxyInstance(
Collection.class.getClassLoader(),
new Class[]{Collection.class},
new InvocationHandler(){
ArrayList target = new ArrayList();
@Override
public Object invoke(Object proxy, Method method,Object[] args) throws Throwable {//这里明确的参数分别代表那些,请详细说明?
return method.invoke(target,args); //这里的method代表的是那个method对象?
}
}
);
proxy3.add("zxx");
proxy3.add("lhm");
proxy3.add("bxd");
System.out.println(proxy3);
System.out.println(proxy3.size());
} }
动态代理看的有点晕,请高手帮忙下,红字部分是问题,谢谢了。 |