java泛型是对Java语言的类型系统的一种扩展,泛型的本质就是将所操作的数据类型参数化。下面我会由浅入深地介绍Java的泛型。
一:泛型出现的背景
在java代码里,你会经常发现类似下边的代码:
public class Test { public static void main(String[] args) { List list = new ArrayList(); list.add("hah"); //list.add(new Test()); // list.add(1); for (Object object : list) { String s1 = (String)object; //.....如果是你你该如何拿出list的值,如果list中放着上边的不同类型的东西。无解 } } }
编码的时候,不加泛型是可以的,但是 你从容器中拿出来的时候必须强制类型转换,第一是多敲很多代码,第二极容易发生类型转换错误,这个运行时异常 比如你把上边
注释的代码放开,程序在获取容器的地方就会报运行时异常 ClassCasrException
Java语言的设计者引入了泛型,暂时先不追究它内在是怎么