Java--泛型

54 阅读1分钟

简介

  日常情况下,比如我们创建一个列表,如果如果我们使用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。