泛型
定义泛型方法的规则:
- 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的<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(); } }
Today And Next