在Java中,泛型是一种允许在编译时定义和使用类型参数(类型变量)的方式,这些类型参数在运行时会被实际的类型所替代。泛型函数(通常被称为泛型方法)是泛型的一个主要应用。泛型方法允许你定义一个方法,该方法可以接受任意类型的参数,并在方法体内使用该类型,而无需进行强制类型转换。
下面是一个泛型方法的示例:
public class GenericMethodDemo { | |
// 泛型方法,用于交换两个变量的值 | |
public static <T> void swap(T[] arr, int i, int j) { | |
T temp = arr[i]; | |
arr[i] = arr[j]; | |
arr[j] = temp; | |
} | |
public static void main(String[] args) { | |
// 创建一个Integer类型的数组 | |
Integer[] intArray = {1, 2, 3, 4, 5}; | |
System.out.println("Before swap: " + Arrays.toString(intArray)); | |
// 调用泛型方法交换intArray中索引为1和3的元素 | |
swap(intArray, 1, 3); | |
System.out.println("After swap: " + Arrays.toString(intArray)); | |
// 创建一个String类型的数组 | |
String[] strArray = {"a", "b", "c", "d", "e"}; | |
System.out.println("Before swap: " + Arrays.toString(strArray)); | |
// 调用泛型方法交换strArray中索引为1和3的元素 | |
swap(strArray, 1, 3); | |
System.out.println("After swap: " + Arrays.toString(strArray)); | |
} | |
} |
在这个例子中,swap
方法是一个泛型方法,它接受一个类型参数 T
。这个类型参数用于指定数组的元素类型,以及用于临时存储交换值的变量 temp
的类型。泛型方法通过 <T>
语法来声明类型参数,并且类型参数可以出现在方法的任何部分(参数、局部变量、返回类型等)。
在 main
方法中,我们分别使用 Integer
类型和 String
类型的数组来调用 swap
方法,展示了泛型方法的灵活性。由于 swap
方法是泛型的,它不需要为每种可能的类型都编写一个特定的版本。