A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王渠 中级黑马   /  2012-8-6 20:11  /  2114 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

动态代理的时候,进行类型强制转换不能转换成实际类型,而需要转换成接口?
请问是为何呢?
为何强制转换成实际类型的时候,会出现类型转换异常呢?

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

1 个回复

倒序浏览
首先要弄清楚Java动态代理的特点:
它是通过实现InvocationHandler接口创建自己的调用处理器;
为Proxy类指定ClassLoader对象和一组interface来创建动态代理类;
通过反射机制获得动态代理类的构造函数,其唯一参数类型是调用处理器接口类型
Java中不允许多继承,那么动态代理类无法实现对class的动态代理;它都需要制定一个实现了该接口的调用处理器对象。所以在动态代理的时候都需要转换成接口。

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马