1. 程式人生 > 其它 >集合框架-泛型-泛型方法

集合框架-泛型-泛型方法

 1 package cn.itcast.p4.generic.define.demo;
 2 
 3 public class GenericDemo4 {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         Tool<String> tool = new Tool<String>();
 8         
 9         tool.show("abc");
10         tool.print("hahah");
11 12 // tool.show(new Integer(4));//型別檢查沒過去 13 Tool.method("haha"); 14 tool.method(new Integer(6)); 15 } 16 17 }
GenericDefineDemo4
 1 package cn.itcast.p4.generic.define.demo;
 2 //定義一個工具類操作所有物件
 3 /*
 4  * public class Tool { private Object object;
 5  * 
 6  * public Object getObject() { return object; }
7 * 8 * public void setObject(Object object) { this.object = object; } 9 * 10 * } 11 */ 12 //在jdk1.5後,使用泛型來接收類中要操作的引用資料型別。 13 //泛型類。什麼時候用?當類中的操作的引用資料型別不確定的時候,就使用泛型來表示。 14 public class Tool<QQ>{ 15 private QQ q; 16 17 public QQ getObject() { 18 return q; 19 } 20 21 public
void setObject(QQ object) { 22 this.q = object; 23 } 24 /** 25 * 將泛型定義在方法上 26 * @param <W> 27 * @param str 28 */ 29 public <W> void show(/*Object*/W str) {//不明確型別用Object其實是一種具體型別,只不過他是父類所以可以多型方式接收 30 System.out.println("show:"+str.toString()); 31 } 32 public void print(QQ str) {//一旦使用了泛型,物件不確定,你不能使用物件的具體方法。無論傳什麼都具備Object的方法 33 System.out.println("print:"+str); 34 } 35 /** 36 * 當方法靜態時,不能訪問類上定義的泛型。如果靜態方法使用泛型, 37 * 只能將泛型定義在方法上。(返回值前修飾符後) 38 * @param obj 39 */ 40 // public static void method(QQ obj) {//加了static 靜態是不需要物件的,泛型需要物件明確,就不知道QQ怎麼用 41 // System.out.println("method:"+obj); 42 // } 43 public static <Y> void method(Y obj) { 44 System.out.println("method:"+obj); 45 } 46 }
Tool