简介
日常情况下,比如我们创建一个列表,如果如果我们使用Object来规定这个列表里面存储的类型,正常情况下这样使用会有一些问题:
- 比如我们想处理String对象,此时取时便需要强制类型转换,相当于多做了操作,并且其实你在取出的时候也不一定就能确保数据一定是String类型,因此有可能强转失败导致程序异常。
- 另一方面,虽然都是Object的组合,但是本质上还是大杂烩,比如我们把这个集合给别人让他去添加东西,这样很容易在后续的处理过程中出现问题。
泛型的使用
泛型类
public class Arraylist<E>{
transient Object[] elementData;
public E get(int index) {
return (E) elementData[index];
}
}
在上述的代码中,E(泛型参数)便是规定了这个类的泛型,(约定俗成我们采用简短的大写字母来表示,比如E,T,V这些,当然你选择什么都可以)
那么在定义了上述的集合类中,当我们创建时可以采用下面的方式进行创建:
ArrayList<String> list = new ArrayList<>();
如果我们在创建的时候不指定类型,那么默认情况下就会将类型定为Object。