首先我们这样理解一下,我们需要创建一个可以存放任何数据类型的数组,而且我们知道任何类都是继承Object类.
此时我们可以想出一个办法来建立一个存放Object类型的数组:
2.
然后我们对其进行填充:
由此可见,尽管这个object数组可以存放任意的数据类型 ,但是当我们取出数据的时候,此时就会出现错误(如果不进行数据类型转换),同时我们也希望这个object数组可以存放的只是任何数据的一种,也就是既可以存放Integer,String,Character…但是只存放其中数据类型的一种,但是我们上述中的object既存放了String,也存放了Integer.所以当我们取出数据的时候我们需要严格的知道每个下标的数据类型是什么然后对其实行强制类型转化.
引出泛型
此时我们可以考虑使用泛型来解决上述问题:
简述一下上述代码,其中类名后面的
代表是一个占位符,你先姑且理解为Integer,从此这个类中所有的带T的都可以替换成Integer,此时接下来就是创建了一个T类型的数组,上述的第二种写法是错误的,因为不可以new 一个泛型数组,具体的原因可以自己查阅一下相关的资料.
也就是指定什么就只可以存什么,当然是object类型的就别当定论,因为她是所有类的父类.
此时可以得出一个泛型的作用
泛型的主要目的:就是指定当前的容器,要持有什么类型的对象。让编译
器去做检查。