我们创建完代理后产生obj对象,假如他有add(int b)方法 调用 obj.add(3),代理类每调用一次方法,实际是交给
InvocationHandler对象的invoke(Object proxy, Method method, Object[] args)方法处理,也就是会去调用invoke()方法,因此你要理解那三个参数 Object proxy---代表的是代理对象也就是obj method--代表的是add方法 args--代表的3 如果你在invoke方法里method.invoke(proxy, args)这样调用 就相当于继续调用obj.add(3)这样就陷入死循环了 |