黑马程序员技术交流社区

标题: 泛型避免了强制转换是什么原理 [打印本页]

作者: YaoDoctor    时间: 2016-9-4 00:42
标题: 泛型避免了强制转换是什么原理
泛型是为了让运行时期的异常转移到编译时期,那内部的强制类型转换是什么原理实现的呢
作者: double_x    时间: 2016-9-4 09:55
什么内部的强制类型转换?  泛型在集合中不就是指定集合存储的数据类型吗?你存储别的类型的会报错的,何来强制类型转换呢?你如果说反射的话我就不懂了  哈哈^_^
作者: 赢无翳    时间: 2016-9-4 10:35
就是多态中的父类引用指向子类对象 如果你要使用子类特有的方法还是需要向下转型的 所谓的让运行时期的异常转移到编译期 其实就是动态绑定的原理
作者: YaoDoctor    时间: 2016-9-4 12:23
double_x 发表于 2016-9-4 09:55
什么内部的强制类型转换?  泛型在集合中不就是指定集合存储的数据类型吗?你存储别的类型的会报错的,何来 ...

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2