java泛型编程02-泛型方法
在前面一篇文章中,我们可以知道,泛型类是带类型参数的类,那么泛型方法也是带类型参数的方法。
泛型类可以是普通类或者是泛型类的方法。
接下来我们来看普通类的泛型方法的一个例子:
package com.ch06.ch602;
public class Arrays {
public static <T> void swap(T[] array, int i, int j) {
T temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
package com.ch06.ch602;
public class Test {
public static void main(String[] args) {
// 这里注意不可以用基本数据类型
Integer[] nums = {1,2,3,4,5};
Arrays.swap(nums, 1, 2);
}
}
当我们声明一个泛型方法时,类型参数要放在修饰符(例如 public 或者 static)之后,返回类型之前。
Arrays.swap(nums, 1, 2);
通过上面的代码我们可以看出来,在调用泛型方法时,不需要指定类型参数。它是可以从方法的参数和返回类型中推断出来的。在这个代码中,因为 nums 是 Integer 类型的,所以编译器可以推断出 T 是 Integer 类型的。
当然,我们也可以显式地展现出类型,我们可以在方法名称之前现实的提供类型:
Arrays.<String>swap(nums, 1, 2);