Java中泛型方法的定義


1. 泛型方法的概念

方法的參數類型是泛型,而不是具體的參數。
注意:是方法的參數是泛型,而不是方法的返回值。

2. 泛型方法的定義格式

[訪問權限] <泛型> 返回值類型 方法名([泛型標識 參數名稱]){方法體;}

3. 泛型方法實例

public <T2> void printArray(T2[] arr){
      for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
      }
}

以上方法就是泛型方法,方法的參數是一個數組,但是這個數組存放的數據類型不是具體的,而是一個泛型。另外,因為這個T2泛型是我們自己定義的,不是Java官方的。
所以為了表示T2也是一種泛型標識,需要在方法的前面也需要添加泛型,用於告訴編譯器T2表示泛型。

4. 注意事項

public class Person<T> {
      private String name;
      private int age;
      private T gender;
      ...
      public T getGender() {
            return gender;
      }
}

以上的getGender並不是泛型方法,因為該方法沒有泛型參數,只是返回值是泛型。並且getGender方法不能被static修飾,因為被static修飾的方法不需要new對象就可以訪問。而T泛型的具體類型是需要new對象的時候才指定的,兩者是矛盾的。
總結 :方法的返回值是泛型的話,該方法不能被static修飾。

如果需要使用static修飾,那么也需要將該靜態方法設置成泛型方法,實例如下:

public class Person<T> {
      private String name;
      private int age;
      private T gender;
      ...
      public static <T> void getGender(T gender) {
            System.out.println(gender);
      }
}

總結:如果靜態方法要使用泛型的話,必須將靜態方法也定義成泛型方法 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM