Java 泛型
Java 泛型方法
泛型方法对其所在类没有要求。即泛型方法所在的类可以是泛型类,也可以不是泛型类。
Java泛型通用方法的规则:
- 泛型方法声明只需要将泛型参数列于返回值之前。
- 每个类型参数部分包含一个或多个类型参数,用逗号分隔。类型参数(也称为类型变量)是指定泛型类型名称的标识符。
- 类型参数可用于声明返回类型,并作为传递给通用方法的参数类型的占位符,这些参数被称为实际类型参数。
- 将一个泛型方法体声明为任何其他方法。注意,类型参数只能表示引用类型,而不是原始类型(如int,double和char)。
public class GenericMethods {
public static void main(String[] args) {
Integer[] intArray = {1,2,3,4,5};
String[] strArray = {"a","b","c","d","e"};
printArray(intArray);
printArray(strArray);
ArrayList<String> list = new ArrayList<>();
list.add("xiaoMing");
list.add("xiaoHong");
list.add("xiaoGou");
System.out.println(list);
printGeneric("");
printGeneric(1);
printGeneric(1.0);
printGeneric(2.0F);
printGeneric('c');
printGeneric(new GenericMethods());
}
//泛型方法
public static <E> void printArray(E[] eArray){
for (E e : eArray) {
System.out.print(e);
}
}
public static <T> void printGeneric(T t){
System.out.println(t.getClass().getName());
}
}
尽管上面这个类和其内部的方法可以被同时参数化,但上面例子中只有泛型方法拥有类型参数。
这是由方法的返回值类型前面的类型参数列表指明的。
输出结果:
12345abcde[xiaoMing, xiaoHong, xiaoGou]
java.lang.String
java.lang.Integer
java.lang.Double
java.lang.Float
java.lang.Character
cn.ling.generic.GenericMethods