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等)之后,返回值聲明之前。
然后,和泛型類一樣,可以聲明多個泛型,用逗號隔開。
http://www.cnblogs.com/anrainie/archive/2012/03/09/2387272.html