public <T> 這個T是個修飾符的功能,表示是個泛型方法,就像有static修飾的方法是個靜態方法同樣。測試
<T> 不是返回值,表示傳入參數有泛型spa
public static <T>list<T> aslist(T...a) code
第一個表示是泛型方法,第二個表示返回值是list類型,而這個list有泛型,只能存t類型的數據get
public <T> void fromArrayToCollection(T[] a, Collection<T> c){ for(T t : a){ c.add(t); } } public void fromArrayToCollection(T[] a, Collection<T> c){ for(T t : a){ c.add(t); } }
第一個方法至關於爲該方法聲明瞭一個類型爲T的類,這個方法放到任意一個類中都不會報錯的。io
第二個方法至關於沒有聲明類型爲T的類,這時必須在類上面加上泛型T,否則這個方法會報錯的。class
package generic; /** * 泛型方法測試 * * @author caiyu * */ public class GenMethod { public static <T> void display(T t) { System.out.println(t.getClass()); } }
首先,泛型的聲明,必須在方法的修飾符(public,static,final,abstract等)以後,返回值聲明以前。泛型
而後,和泛型類同樣,能夠聲明多個泛型,用逗號隔開。方法