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

posted on 2016-11-30 10:02  筱筱鹿丸  阅读(12684)  评论(0编辑  收藏  举报