定义泛型方法的规则:
- 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的<E>)。
- 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
- 类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
- 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型(Integer、Double、Float、String等),不能是原始类型(像int,double,char的等)。
例如:
public class NewTest1 {
public static void main(String[] args) {
Integer[] int_array = new Integer[] { 1, 2, 3 };
Float[] float_array = new Float[] { 1.0F, 2.0F, 3.0F };
Double[] double_array = new Double[] { 11.11D, 22.22D, 33.33D };
System.out.print("Array<Int>数组元素依次排列为: ");
arrayPrint(int_array);
System.out.print("Array<Float>数组元素依次排列: ");
arrayPrint(float_array);
System.out.print("Array<Double>数组元素依次排列: ");
arrayPrint(double_array);
}
private static<E> void arrayPrint(E[] arr) {
for(E e : arr) {
System.out.print( e +" , ");
}
System.out.println();
}
}
重载解决上述问题:
public class ThreeArr {
public static void main(String[] args) {
int[] int_array = new int[] { 1, 2, 3 };
float[] float_array = new float[] { 1.0F, 2.0F, 3.0F };
double[] double_array = new double[] { 11.11D, 22.22D, 33.33D };
arrayPrint(int_array);
arrayPrint(float_array);
arrayPrint(double_array);
}
private static void arrayPrint(double[] double_array) {
System.out.print("Array<Double>数组元素依次排列为: ");
for(Double i : double_array) {
System.out.print( i +", ");
}
System.out.println();
}
private static void arrayPrint(float[] float_array) {
System.out.print("Array<Float>数组元素依次排列为: ");
for(Float i : float_array) {
System.out.print( i +", ");
}
System.out.println();
}
private static void arrayPrint(int[] int_array) {
System.out.print("Array<Int>数组元素依次排列为: ");
for(int i : int_array) {
System.out.print( i +", ");
}
System.out.println();
}
}