为什么JDK动态代理生成的代理类一定要继承Proxy?
JDK的动态代理通过ProxyGenerator.generateProxyClass()生成代理类的字节码,由Proxy.defineClass0()加载,可以看到这个代理类 extends Proxy implements Interface1, ... {...}。
而在代理类中,与Proxy有关的只有Proxy的变量protected InvocationHandler h;这个InvocationHandler实例的引用,在调用接口方法时实际调用的是super.h.invoke(this, method, args)。
那么,为什么不能由Proxy生成代理类的字节码,在代理类中定义一个变量并传入InvocationHandler对象的引用,而非继承Proxy呢?如果是这样,JDK动态代理是否可以对类进行代理?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Proxy就是个类名字而已,用来装newProxyInstance方法的