标签:
/**
* 泛型方法
* 当方法要操作的类型和类上的泛型不一定一样.这时可以将泛型定义在方法上.这就是泛型方法
*
*/
public class GenericDemo3 {
public static void main(String[] args) {
Util<String> u = new Util<String>();
u.show("abc");
// u.show(6); //编译报错 类型与定义的泛型不匹配
Util<Integer> i = new Util<Integer>();
i.show(6);
// i.show("abc"); //编译报错 类型与定义的泛型不匹配
//part2:
i.show("abc");
i.show(new Exception()); //什么类型都可以接收了
}
}
/*part1: 泛型类 注意泛型定义的位置
* 当方法要操作的类型和类上的泛型不一定一样.
* 这是可以将泛型定义在方法上.
* */
class Util <T>{
public<Q> void show(Q q){ //part2: 这就是泛型方法
System.out.println("show"+q);
}
public static <S>void print(S s /*T t*/ ){
//part3: 记住:如果方法是静态,还需要使用泛型,那么泛型必须定义在方法上。
//原因在于:静态方法随着类的加载,而Util对象还每建立时,是不确定泛型参数是什么的,所以需要把泛型定义在静态方法上.
System.out.println("print"+ s /*t*/);
}
public void show2(T t){
/*code....*/
}
}
GenericDemo3 泛型方法
标签:
原文地址:http://www.cnblogs.com/zyjcxc/p/5453466.html