泛型

所谓泛型,就是允许在定义类、接口、方式时使用类型形参(泛型),这个类型形参将在声明变量、创建对象、调用方法时动态地指定,进而让程序具备编译时检查能力

它是JDK1.5提供的特性。提供代码编译时纠错能力

1
2
3
ArrayList bookList = new ArrayList();
bookList.add("三国演义");
bookList.add(123);

上述代码中,如果对”三国演义“进行字符串操作不会出现问题,但是对123进行字符串操作时则会出错。

增加泛型则可以给出提示,所以泛型提供代码编译时纠错能力

  • 两种写法

    1. <T>:Type单词的首字母,说明传入的是类型。
    2. <E>:是Element元素的首字母,代表是集合中的元素。
  • 泛型方法

    JDK1.5以后提供泛型方法的支持,允许在类没有声明泛型的前提下让方法独立使用泛型。

    1
    2
    3
    4
    5
    6
    public <T> List<T> transferToList(T[] array){
    List<T> list = new ArrayList();
    for (T item : array){
    list.add(item);
    }
    }
  • 通配符

    • 通过extends与super限定范围

      1
      2
      3
      4
      // 最高能到Shape
      public void doSth(List<? extends Shape> shapeList)
      // 最低能到Rectangle
      public void doSth(List<? super Rectangle> shapeList)