泛型方法
package 泛型;
//泛型方法:
/*泛型類定義的泛型,在整個類中有效,如果被方法使用
那么泛型類的對象明確要操作的具體類型后,所有要操作的類型就
已經固定了。*/
/*為了讓不同方法可以操作不同類型,而且類型還不確定。那么可以將泛型定義在方法上*/
/*特殊之處:靜態方法不可以訪問類上定義的泛型。
* 如果靜態方法操作的應用數據類型不確定,可以將泛型定義在方法上。
* */
class Demo<T>{//將類型定義在類上
public void show(T t){
System.out.println("show"+t);
}
public void print(T t){
System.out.println("print"+t);
}
/*public static void method(T t){//錯誤的方式
System.out.println("method:"+t);
}*/
public static <W> void method(W t){//<W>泛型放在修飾符后面,返回值前面
System.out.println("method"+t);
}
}
class Demo1{//將類型定義在方法上
public <T> void show(T t){
System.out.println("show:"+t);
}
public <Q> void print(Q q){
System.out.println("print:"+q);
}
}
//既給類定義了泛型,又在類中定義了泛型方法
class Demo2<T>{
public void show(T t){
System.out.println("show:"+t);
}
public <Q> void print(Q q){
System.out.println("print:"+q);
}
}
public class GenericDemo {
public static void main(String[] args) {
//將泛型定義在方法上
Demo1 d = new Demo1();
d.show("haha");
d.show(4);
d.show(new Integer(4));
d.print(4);
d.print("hehe");
//泛型定義在類上的情況
Demo<String> d1 = new Demo<String>();
d1.show("aaa");
d1.print("4");
Demo<Integer> d2 = new Demo<Integer>();
d2.show(new Integer(4));
d2.print(9);
//既給類定義了泛型,又在類中定義了泛型方法
Demo2<String> d3 = new Demo2<String>();
d3.show("haha");
d3.print(4);
}
}
浙公網安備 33010602011771號