java泛型-泛型方法
泛型方法
泛型类,是在实例化类的时候指明泛型的具体类型
泛型方法,是在调用方法的时候指明泛型的具体类型
语法
修饰符 <T, E, ...> 返回值类型 方法名(形参列表) {
方法体......
}
1.public与返回值中间<T>非常重要,可以理解为声明此方法为泛型方法
2.只有声明了<T>的方法才是泛型方法,泛型类中的使用了泛型的成员并不是泛型方法
3.<T>表示该方法使用泛型T,此时可以在该方法中使用泛型T
4.与泛型类的定义一样,此处T可以随便写为任意标识,常见的如T,E,K,V等形式的参数常用于表示泛型
5.泛型方法能使方法独立于类而产生变化
6.如果static方法要使用泛型能力,就必须使其成为泛型方法
代码示例
/**
* 泛型类Product
*/
public class Product<T> {
//泛型方法getProduct
public static <E> E getProduct(List<E> list) {
return list.get(0);
}
//泛型方法
public <E> void getProduct(E e) {
}
//此处泛型类为T,使用类的泛型方法不可声明为static,因为使用static方法时类还未初始化
public /* static */ void getProduct2(T t) {
}
//注意,此处的T为泛型方法的泛型,非泛型类的泛型
public static <T, E, K> void getProduct(T t, E e, K k) {
}
/**
* 泛型方法可变参数
* @param <E>
* @param e
*/
public static <E> void print(E... e) {
for (int i = 0; i < e.length; i++) {
System.out.println(e[i]);
}
}
public static void main(String[] args) {
Product.print("你好", 1, "world");
}
}