- Class classProxy=Proxy.getProxyClass(Collection.class.getClassLoader(), Collection.class);
- Constructor constructor = classProxy.getConstructor(InvocationHandler.class);
- Collection conllection=(Collection) constructor.newInstance(new InvocationHandler(){
- ArrayList al=new ArrayList();
- @Override
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
- Object value=method.invoke(al, args);
- return value;
- }
- });
- conllection.add("aaaa");
- conllection.add("bbbb");
- conllection.add("cccc");
复制代码 在张孝祥老师讲的动态代理中为什么这句话conllection.add("aaaa");一执行就会调用 invoke(Object proxy, Method method, Object[] args)呢?怎么把conllection给proxy,把add给method,把“aaa”给args的呢?是怎么过去的呢? |