为了账号安全,请及时绑定邮箱和手机立即绑定

关于JDK动态代理的问题

JDK动态代理只能代理实现了接口的类,这个类必须得实现InvocationHandler是吧?如果是的话,那LogHandler也实现了InvocationHandler接口,是不是它也可以代理自己呢?请老师给予解答。谢谢。

正在回答

2 回答

您好,很高兴收到你的问题,解答如下:

JDK动态代理只能代理实现了接口的类,不是这个类(比如Car,实现Moveable接口)需要实现InvocationHandler,而是他的处理器(LogHandler)需要实现InvocationHandler接口。

JDK动态代理它是在运行时生成的class,在生成它时你必须提供一组interface给它,然后该class就宣称它实现了这些 interface。你当然可以把该class的实例当作这些interface中的任何一个来用。当然,这个Dynamic Proxy其实就是一个Proxy,它不会替你作实质性的工作,在生成它的实例时你必须提供一个handler,由它接管实际的工作。

1 回复 有任何疑惑可以回复我~
#1

用户1078541 提问者

非常感谢!
2014-12-19 回复 有任何疑惑可以回复我~

明白了,刚开始我的想法是错的,经过老师提点,大彻大悟了。呵呵。谢谢!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于JDK动态代理的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信