JDK动态代理原理探究

public static Object newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h)

根据所有继承的接口,动态操作字节码,实现得到一个子类Class,该Class具有被代理对象类的一切接口实现方法。不过最先得到的,应该是空实现的Class,重写了全部接口方法。空实现中,并不空。每一个实现方法中,都调用了成员属性h的invoke方法。接下来,用参数h对象给Class中的成员属性h赋值。然后Class对象的实例在执行任何方法时,内部都是真正的h实例在执行它自己的invoke方法。

源码初步分析,确实如此。可能有少许偏差。

源码分析,待续...

你可能感兴趣的:(JDK动态代理原理探究)