博为峰小博老师:java
[泛型初探]安全
在泛型出现以前,是这么写代码的:优化
固然这是彻底容许的,由于List里面的内容是Object类型的,天然任何对象类型均可以放入、均可以取出,可是这么写会有两个问题:3d
一、当一个对象放入集合时,集合不会记住此对象的类型,当再次从集合中取出此对象时,该对象的编译类型变成了Objectcode
二、运行时须要人为地强制转换类型到具体目标,实际的程序毫不会这么简单,一个不当心就会出现java.lang.ClassCastException,即类型转换异常对象
因此,泛型出现以后,上面的代码就改为了你们都熟知的写法:blog
这就是泛型。泛型是对Java语言类型系统的一种扩展,有点相似于C++的模板,能够把类型参数看做是使用参数化类型时指定的类型的一个占位符。引入泛型,是对Java语言一个较大的功能加强,带来了不少的好处:ip
一、类型安全。类型错误如今在编译期间就被捕获到了,而不是在运行时看成java.lang.ClassCastException展现出来,将类型检查从运行时挪到编译时有助于开发者更容易找到错误,并提升程序的可靠性开发
二、消除了代码中许多的强制类型转换,加强了代码的可读性get
三、为较大的优化带来了可能