Java中的泛型方法是什么?

与泛型类相似,您也可以在Java中定义泛型方法。这些方法使用它们自己的类型参数。与局部变量一样,方法的类型参数的范围也位于方法内。

  • 在定义泛型方法时,您需要在尖括号(<T>)中指定类型参数。应将其放置在方法的返回类型之前。

  • 您可以使用逗号分隔多个类型参数。类型参数,也称为类型变量,是指定泛型类型名称的标识符。

  • 类型参数可用于声明返回类型,并用作传递给泛型方法的参数类型的占位符,这些参数称为实际类型参数。

例1

public class GenericMethod {
   <T>void sampleMethod(T[] array) {
      for(int i=0; i<array.length; i++) {
         System.out.println(array[i]);
      }
   }
   public static void main(String args[]) {
      GenericMethod obj = new GenericMethod();
      Integer intArray[] = {45, 26, 89, 96};
      obj.sampleMethod(intArray);
      String stringArray[] = {"Krishna", "Raju", "Seema", "Geeta"};
      obj.sampleMethod(stringArray);
   }
}

输出结果

45
26
89
96
Krishna
Raju
Seema
Geeta

例2

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
public class GenericMethodExample {
   public static <T> void arrayToCollection(T[] array, Collection<T> coll ) {
      for(int i=0; i<array.length; i++) {
         coll.add(array[i]);
      }
      System.out.println(coll);
   }
   public static void main(String args[]) {
      Integer [] intArray = {24, 56, 89, 75, 36};
      ArrayList<Integer> al1 = new ArrayList<Integer>();
      arrayToCollection(intArray, al1);
      String [] stringArray = {"Ramu", "Raju", "Rajesh", "Ravi", "Roshan"};
      ArrayList<String> al2 = new ArrayList<String>();
      arrayToCollection(stringArray, al2);
   }
}

输出结果

[24, 56, 89, 75, 36]
[Ramu, Raju, Rajesh, Ravi, Roshan]