泛型之泛型方法

    public class F {
        //泛型方法
        public static <T> T getT(T[] array) {
           return array[array.length/2];
        }
        public void f() {
            //顯式賦值
            String name1 = F.<String>getT(new String[] {"張三","李四","王五"});
            //隱式賦值,常用此方式,可以不指定 <String>
            String name2 = F.getT(new String[] {"張三","李四","王五"});    
        }
    }

泛型方法不受類的限制,也就是說,即使方法所在的類不是泛型類,也可以定義泛型方法;在泛型類中定義的方法,也不一定是泛型方法,就看你如何定義了。
定義泛型方法的格式:
修飾符 <T> 返回值 方法名() {}
泛型方法的特點:

  1. 類型變量(<T>)定義在返回值之前,這是必須的,只有這樣,它纔是泛型方法
  2. 在返回值類型中使用泛型
  3. 在方法參數類型中使用泛型
  4. 泛型方法不受類的限制,不受static的限制

正常的泛型方法既有返回值也有方法參數,並且返回值和方法參數都使用泛型T,但即使沒有泛型方法沒有返回值或者沒有方法參數,也不算錯,但沒有意義。

  1. 泛型類中可以定義泛型方法。注意:是泛型方法與泛型類中的方法是兩碼事
  2. 普通類中也可以定義泛型方法
  3. 泛型方法 != 泛型類中的方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章