泛型方法

一、泛型方法
  方法使用泛型之前必须对泛型进行声明,语法<T>,T可以是任意字母,但通常必须大写。
  泛型的声明<T>要放在方法的返回值之前,如 public static <T> void doXX(T t)

二、如果在类的声明上声明了泛型,那么类中的实例方法声明中可以声明泛型也可以直接使用类声明的泛型,但是类中的静态方法必须要声泛  型。
  例如:
  
  public class Demo <T>{
      public void m1(T t){......}                
      public T void m2(T t){......}
      public static <T> void m3(T t){.....}      
  }
  对于上面的m1和m2来说,类型T是依赖于类的对象的,因此必须要创建类的实例才可以调用m1和m2
三、只有引用类型才可以作为泛型方法的实参
  
java.util.Arrays类中的asList方法定义如下:
    
public static <T> List<T> asList(T... a)
    参数是一个可变参数,注意一个原则,那就是:只有引用类型才可以作为泛型方法的实参
    那么,请看下面的例子:
    如果参数是一个基本类型的数组,那么该方法会将整个数组来转化为list中的一个元素
    如:
      int[] i1 = {1,2,3};
      list = Arrays.asList(i1);
      Syso(list); 
    上面输出的结果是i1的内存地址.
   如果将上面的数组类型由int改为Integer,则会将数组中的每一个数转为list中的一个一个元素.
 
原文地址:https://www.cnblogs.com/byron0918/p/4709461.html