java|java 泛型
[转]JAVA泛型及为什么需要泛型
注 : 原文的标题有误,在此更正一下
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
比如,有一种类型为List,此时该List可以是任意类型的列表,如Integer,String等等。
【java|java 泛型】如果把List类型改为List
这就是所谓的将操作的数据类型指定为一个参数,这等同于C++里面的模板(template)。
那么这么做有什么好处呢?
比如原来我们有如下的程序:
List myIntList = new LinkedList();
// 1myIntList.add( new Integer(0));
// 2Integer x = (Integer) myIntList.iterator().next();
// 3
在第三行中进行了强制类型转换。这个类型转换不仅仅带来了混乱,它还可能产生一个运行时错误(run time error),因为程序员可能会犯错。
程序员如何才能明确表示他们的意图,把一个list中的内容限制为一个特定的数据类型呢?这是generics背后的核心思想。这是上面程序片断的一个泛型版本:
List
注意变量myIntList的类型声明。它指定这不是一个任意的List,而是一个Integer的List,写做:List
另一个需要注意的是第3行没了类型转换。
一句话:就是 给容器指定类型 ,那么在使用这个容器的时候,就不用特意的转型了
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- 流转
- 一起来学习C语言的字符串转换函数
- Java|Java OpenCV图像处理之SIFT角点检测详解
- 【58】转移注意力
- java中如何实现重建二叉树
- 考前焦虑——接纳情绪,转移注意力
- leetcode|leetcode 92. 反转链表 II
- 视频转换器哪种好用()