invoke方法中的第一个参数是目标类的参数,
你把method.invoke(target,args)与proxy3.add("zxx")对照一下就会发现, invoke(Object proxy, Method method, Object[] args)正好对应proxy3.add("zxx") 中的三个元素proxy3 ,add, "zxx",
因为已经代理类已经实现了同样的Collection,所以代理也可以使用Collection中add的方法,method.invoke(target,args)会返回实际对象的调用结果,就好比:
add.invoke(target,"zxx")一样,对象是 target ,target中有add方法,add方法添加参数"ZXX'.只不过用的是代理的表现形式,实际操作结果是一样的
|