泛型的作用,以及與Object的區別


在Java SE 1.5之前,沒有泛型的情況的下,通過對類型Object的引用來實現參數的“任意化”,“任意化”帶來的缺點是要做顯式的強制類型轉換,而這種轉換是要求開發者對實際參數類型可以預知的情況下進行的。對於強制類型轉換錯誤的情況,編譯器可能不提示錯誤,在運行的時候才出現異常,這是一個安全隱患。

public class Gen<T> {  
    private T ob; // 定義泛型成員變量  
  
    public Gen(T ob) {  
        this.ob = ob;  
    }  
  
    public T getOb() {  
        return ob;  
    }  
  
    public void setOb(T ob) {  
        this.ob = ob;  
    }  
  
    public void showType() {  
        System.out.println("T的實際類型是: " + ob.getClass().getName());  
    }  
}  
public class GenDemo {  
    public static void main(String[] args) {  
        // 定義泛型類Gen的一個Integer版本  
        Gen<Integer> intOb = new Gen<Integer>(88);  
        intOb.showType();  
        int i = intOb.getOb();  
        System.out.println("value= " + i);  
        System.out.println("----------------------------------");  
        // 定義泛型類Gen的一個String版本  
        Gen<String> strOb = new Gen<String>("Hello Gen!");  
        strOb.showType();  
        String s = strOb.getOb();  
        System.out.println("value= " + s);  
    }  
}  

 

 

 

 

一句話總結就是:
泛型的好處是在編譯的時候檢查類型安全,並且所有的強制轉換都是自動隱式的,提高代碼的重用率,不用像Object一樣強轉了。

 


免責聲明!

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



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