public <T> void show(T t),void前面的泛型T是什麼作用
阿新 • • 發佈:2018-11-19
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等)之後,返回值宣告之前。
然後,和泛型類一樣,可以宣告多個泛型,用逗號隔開