/*
class Demo<T>
{
public void show(T t)
{
System.out.println("show:"+t);
}
public void print(T t)
{
System.out.println("print:"+t);
}
}
/
/
泛型類定義的泛型,在整個類中有效遭殉,如果被方法使用,
那么泛型類的對象明確要操作的具體類型后疑苔,所有要操作的類型就已經(jīng)固定了
為了讓不同方法可以操作不同類型敞恋,而且類型還不確定箕般,可以將類型定義在方法上
特殊之處:靜態(tài)方法不可以訪問類上定義的泛型梁肿。
如果靜態(tài)方法操作的應(yīng)用數(shù)據(jù)類型不確定,可以將泛型定義在方法上
*/
//把泛型定義在類上
class Demo<T>
{
public void show(T t)
{
System.out.println("show:"+t);
}
//把泛型定義在方法上
public <Q> void print(Q q)
{
System.out.println("show:"+q);
}
//泛型定義在返回值前面耸彪,否則格式書寫錯誤
public static <W> void method(W w)
{
System.out.println("methd:"+w);
}
}
class GenericDemo4
{
public static void main(String[] args)
{
Demo<String> d = new Demo<String>();
d.show("haha");//ok
//d.show(4);/定義在類中的泛型伞芹,類型隨著對象走,是String類型蝉娜,編譯失敗
d.print(5);//定義在方法上的泛型唱较,穿什么類型都可以,所以編譯成功
d.print("haha");//定義在方法上的泛型召川,穿什么類型都可以南缓,所以編譯成功
Demo.method("hahahhaha");
/*
Demo d = new Demo();
d.show("haha");
d.print(new Integer(4));
*/
/*
Demo<Integer> d = new Demo<Integer>();//對象一建立操作類型也就定義了
d.show(new Integer(4));
d.print(9);//有自動裝箱功能,打印4和9
*/
}
}