-
泛型方法
如果泛型方法可以取代整個類泛型化,那麼就應該只使用泛型方法。
對於一個static的方法而言,無法訪問泛型類的類型參數,所以如果static方法需要使用泛型能力,必須使其成爲泛型方法。
定義泛型方法:
只需要將泛型參數列表置於返回值之前
public<T> void f(T x){
System.out.println(x.getClass().getName());
}
class Show<T> {
public void print1(T t) { System.out.println(t); }
public <T> void print2(T t) { System.out.println(t); }
}
public class A {
public static void main(String[] args) {
Show<String> show = new Show<String>();
show.print1(new Integer(1));// 不能編譯,因爲對象級別的泛性是String
show.print2(new Integer(1));// 可以編譯,因爲方法自己定義了泛型,覆蓋了對象的泛型,同時保證了後面的參數可以出現這種類型
<T> 與Class<T>
<T>是具體的一個對象。Class<T>是一個類
類似:T指圓 Class<T>指多邊形
//定義一個泛型方法,類型化參數,tClass 某一類
private <T> void setSpan(FontStyle fontStyle,boolean isSet,Class<T> tClass)
以上說明來着網絡,與書籍。