话说有这么一个叫proxy3动态代理对象。执行了下面这句代码:
- System.out.println(proxy3.getClass().getName()); //打印出来的是代理类的字节码名字
复制代码
为什么是打印的代理类的字节码名字而不是打印目标类的名字呢?
答案是:目标类关于自身的方法中,调用目标类从Object类继承的hashCode, equals, 或toString这几个方法时,代理对象将调用请求转发给InvocationHandler对象,对于其他方法,则不转发调用请求。
那么,关于答案的疑问在于,这里调用的不是getClass()方法吗?跟hashCode, equals, 或toString这几个方法有什么关系? |
|