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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© darkads 中级黑马   /  2014-9-21 21:05  /  762 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

泛型:没有泛型之前,我们在向一个集合中添加元素时,不管什么类型都可以向其中添加。有了泛型集合,那么只能向其中添加一种数据类型,如果不是,编译器会报错,而且取出数据时,也不用强制类型转换。
       1)泛型是提供给编译器使用的,当编译完成后,编译器会去泛型化,所以泛型集合只能挡住源程序的非法插入,所以可以通过反射向其中添加其他类型的元素。
       2)
参数化的类型与原始类型关系:相互兼容,编译器警告;他们之间没有继承关系,否则报错;数组元素不能使用参数化的类型。

擦除:
Java的泛型类似于C++中的模板,但是这种类似仅限于表面,因为Java的泛型完全是在编译器中实现的,用于编译器的类型检查和类型推断,然后生成普通的非泛型字节码。仅使用泛型保证类型安全,生成字节码前将其擦除。扩展虚拟机指令集支持泛型是JVM厂商无法接受的。

泛型的一些基本含义:
1.ArrayList<E>:泛型类型
2.E:类型变量,类型参数
3.ArrayList<Integer>:参数化的类型
4.Integer:类型参数实例,实际类型参数
5.<>:typeof
6.ArrayList:原始类型


1 个回复

倒序浏览
谢谢总结分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马