歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 什麼是Java泛型

什麼是Java泛型

日期:2017/3/1 10:09:56   编辑:Linux編程

什麼是泛型呢?

我們首先寫一個最簡單的泛型類來說明:

  1. public class Generics<T> { //T是type的簡稱,可以使用任何名稱代替
  2. private T o; //泛型成員變量
  3. public Generics(T o){
  4. this.o=o;
  5. }
  6. public T getObject() {
  7. return o;
  8. }
  9. public void setObject(T o) {
  10. this.o = o;
  11. }
  12. public String getType() {
  13. return o.getClass().getName();
  14. }
  15. }

這個泛型類包括自己的構造函數,以及get、set方法和一個getType方法。

我們可以這樣使用這個類:

  1. public class GenericsDemo{
  2. public static void main(String[] args){
  3. Generics<Integer> intObject=new Generics<Integer>(1);
  4. System.out.println("the value of intObject is " + intObject.getObject());
  5. System.out.println("the type of intObject is " + intObject.getType());
  6. Generics<String> stringObject=new Generics<String>("hi, generics!");
  7. System.out.println("the value of stringObjectis " + stringObject.getObject());
  8. System.out.println("the type of stringObjectis " + stringObject.getType());
  9. }
  10. }
我們可以使用這個泛型類的各種類類型的版本(如例子中的Integer, String, 以及所有Object類及其子類)。不過泛型並不支持基本數據類型。

很明顯,使用java泛型,我們可以省掉強制類型轉換。編譯器會保留參數的類型信息,執行類型檢查,執行類型轉換操作。因此開發人員不需要自己確保類型轉換的安全性,而把這個交給編譯器去做。

Copyright © Linux教程網 All Rights Reserved