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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

泛型是为了让运行时期的异常转移到编译时期,那内部的强制类型转换是什么原理实现的呢

6 个回复

倒序浏览
什么内部的强制类型转换?  泛型在集合中不就是指定集合存储的数据类型吗?你存储别的类型的会报错的,何来强制类型转换呢?你如果说反射的话我就不懂了  哈哈^_^
回复 使用道具 举报
就是多态中的父类引用指向子类对象 如果你要使用子类特有的方法还是需要向下转型的 所谓的让运行时期的异常转移到编译期 其实就是动态绑定的原理
回复 使用道具 举报
double_x 发表于 2016-9-4 09:55
什么内部的强制类型转换?  泛型在集合中不就是指定集合存储的数据类型吗?你存储别的类型的会报错的,何来 ...

出现泛型之前,需要强制转换
泛型出现后,使用泛型就可以不用强制转换了
回复 使用道具 举报
泛型只在编译时期存在,避免编译错误。可以用反编译工具查看.class文件,使用了泛型,java编译器会自动使用强转!同样使用反射,也会绕过编译器检查,比如可以用反射一个声明泛型的集合里添加任何类型元素!
回复 使用道具 举报
假设一个list 集合没有加泛型,那么它存储的元素全部默认为object类型,当你调用元素对象里面的方法时候,就必须得强转.泛型的出现,就使你省略了这一步
回复 使用道具 举报
Toxicant 来自手机 中级黑马 2016-9-5 00:24:41
7#
泛性,就是硬性规定了存储数据的类型,这样对于存取数据在编译时期就反馈错误!另一种可以解释只能存泛性规定的这一种数据!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马