1. 程式人生 > >public <T> void show(T t),void前面的泛型T是什麼作用

public <T> void show(T t),void前面的泛型T是什麼作用

public <T>這個T是個修飾符的功能,表示是個泛型方法,就像有static修飾的方法是個靜態方法一樣。

<T> 不是返回值,表示傳入引數有泛型

public static <T>list<T> aslist(T...a)  

第一個表示是泛型方法,第二個表示返回值是list型別,而這個list有泛型,只能存t型別的資料

泛型方法的使用示例:

 1 public <T> void fromArrayToCollection(T[] a, Collection<T> c){  
 2         for(T t : a){  
 3             c.add(t);  
 4         }  
 5     }  
 6   
 7   
 8 public void fromArrayToCollection(T[] a, Collection<T> c){  
 9         for(T t : a){  
10             c.add(t);  
11         }  
12     }  

第一個方法相當於為該方法聲明瞭一個型別為T的類,這個方法放到任意一個類中都不會報錯的。

第二個方法相當於沒有宣告型別為T的類,這時必須在類上面加上泛型T,不然這個方法會報錯的。

 1 package generic;
 2 
 3 /**
 4  * 泛型方法測試
 5  * 
 6  * @author caiyu
 7  * 
 8  */
 9 public class GenMethod {
10 
11     public static <T> void display(T t) {
12         System.out.println(t.getClass());
13     }
14 }

首先,泛型的宣告,必須在方法的修飾符(public,static,final,abstract等)之後,返回值宣告之前。

然後,和泛型類一樣,可以宣告多個泛型,用逗號隔開