Java泛型使用方法和实例

时间:2018-08-20
本文章向大家介绍Java泛型使用方法和实例,需要的朋友可以参考一下

为什么要使用泛型?

  在Java中增加泛型之前,泛型程序设计是用继承来实现的,例如ArrayList,只维护Object引用的数组:

1 public class ArrayList{
2   private Object[] elementData;
3 
4   public Object get(int i){...}
5   public void add(Object o){...}        
6 }

  在这里有一个问题,就是每次使用的时候,都必须进行一次强制类型转换

1 ArrayList list = new ArrayList();
2 ...
3 String name = (String)list.get(0);

  可以发现还没有错误检查,如果是其他类型会检测不到,当添加的时候,可以是任何类的对象

  每次都转换一次很麻烦,用什么解决呢,类型参数!

ArrayList<String> list = new ArrayList<String>();
//在JAVASE 7以后的版本中,可以直接使用一下方法来声明了
ArrayList<String> list = new ArrayList<>();

简单泛型类

public class Pair<T>{
  private T first;
  private T second;

  public Pair(){first = null; second = null;}
  public Pair(T first, T second){this.first = first; this.second = second}

  //get set
  ...

}

  现在,我们可以像现在这样定义了

Pair<String> test1 = new Pair<>();
Pair<Integer> test2 = new Pair<>();

泛型方法

public class test{
  public static <T> T first(T...a){
   //...
  }
}

  但是需要注意的是,下面这几种,并不是泛型方法,不要混淆

 1 public class test<T>{
 2   private T t;
 3 
 4   //这个不是,只是一个普通的成员的方法
 5   public test(T t){
 6     this.t = t;
 7   }
 8   //这个也不是,只是泛型类是形参
 9   public void add(test<T> object){...}
10 }

吃饭了,下次接着写