用户1078541
2014-12-16 21:28
JDK动态代理只能代理实现了接口的类,这个类必须得实现InvocationHandler是吧?如果是的话,那LogHandler也实现了InvocationHandler接口,是不是它也可以代理自己呢?请老师给予解答。谢谢。
您好,很高兴收到你的问题,解答如下:
JDK动态代理只能代理实现了接口的类,不是这个类(比如Car,实现Moveable接口)需要实现InvocationHandler,而是他的处理器(LogHandler)需要实现InvocationHandler接口。
JDK动态代理它是在运行时生成的class,在生成它时你必须提供一组interface给它,然后该class就宣称它实现了这些 interface。你当然可以把该class的实例当作这些interface中的任何一个来用。当然,这个Dynamic Proxy其实就是一个Proxy,它不会替你作实质性的工作,在生成它的实例时你必须提供一个handler,由它接管实际的工作。
明白了,刚开始我的想法是错的,经过老师提点,大彻大悟了。呵呵。谢谢!
模式的秘密---代理模式
54912 学习 · 98 问题
相似问题