Java 泛型

一:泛型分三类:
  1 类上的泛型、2接口上的泛型、3 泛型方法

二:什么时候用?
  如果你写两套代码,处理流程几乎一模一样,只是针对的数据的类型不一样,就可以考虑“只写一遍”,而不是两遍

三:泛型方法
  在返回值前加上符号<T> 表示该方法是泛型方法

  public static <T> List<T> genericMethod(T param,String sql){
    System.out.println("run sql...");
    List<T> list = new ArrayList<T>();
    return list;
  }

四:泛型类
  public class MyList<T>{
    private T t;
    public void add(T t){
      system.out.println("put element into MyList,this element is type of T");
    }
    public T getT(){
      return t;
    }
  }
  泛型类如果将类型传入进来后,就没必要再声明泛型方法了(个人理解),因为类型参数已经传入

五:泛型的边界
  List<? extends T>   表示? 的上限是类型T,可以接收任意T的子类(包括T)的List
  List<? super T>    表示? 的下限是类型T,可以接收任意T的父类(包括T) 的List

六:泛型擦除
  在编译后,所有关于泛型的信息会被擦除掉,所以在方法重载时,类似下面这样情况,是会编译出错的,擦除后,是同一个方法
  public List<Integer> method()
  public List<String> method()

posted @ 2015-02-06 16:30  roscee  阅读(172)  评论(0)    收藏  举报