什么是java泛型

jopen 12年前發布 | 26K 次閱讀 Java開發 Java

什么是泛型呢?

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

    public class Generics<T> { //T是type的簡稱,可以使用任何名稱代替  
        private T o; //泛型成員變量  
        public Generics(T o){  
            this.o=o;  
        }  
        public T getObject() {  
            return o;  
        }  
        public void setObject(T o) {  
            this.o = o;  
        }  
        public String getType() {  
            return o.getClass().getName();  
        }  
    }  

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

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

    public class GenericsDemo{  
        public static void main(String[] args){  

            Generics<Integer> intObject=new Generics<Integer>(1);  
            System.out.println("the value of intObject is " + intObject.getObject());  
            System.out.println("the type of intObject  is " + intObject.getType());  

            Generics<String> stringObject=new Generics<String>("hi, generics!");  
            System.out.println("the value of stringObjectis " + stringObject.getObject());  
            System.out.println("the type of stringObjectis " + stringObject.getType());  
        }  
    }  
我們可以使用這個泛型類的各種類類型的版本(如例子中的Integer, String, 以及所有Object類及其子類)。不過泛型并不支持基本數據類型。

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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!