1)每一次调用代理类的方法都会去调用InvocationHandler的invoke方法。
2)InvocationHandler的成员变量是目标类,所有的操作都是由目标类去完成的,所以如果不指定目标类,则调用一些需要返回值的方法会有空指针异常。
3)method.invoke(target, args)方法就是进行目标类的操作,那么我们可以在它的前面、后面增加一些额外的功能。
4)动态代理类的invoke方法的三要素:代理对象,目标方法,方法参数。
5)代理类不重写从Object类继承的公共方法,所以getClass()会返回代理类本身,而不是目标类。
|
|