JAVA泛型程序設(shè)計的意義

為什么要使用泛型程序設(shè)計

泛型程序設(shè)計意味著編寫的代碼可以被不同類型的對象所重用

參數(shù)類型的好處

在Java增加泛型類以前,泛型程序設(shè)計是使用繼承實現(xiàn)的。ArrayList類只維護一個Object引用的數(shù)組:

public class ArrayList
{
  private Object[] elementData;
  ...
  public Object get(int i){...}
  public void add(Object o){...}
}

這樣有兩個問題:1.取得一個值得時候必須進行強制類型轉(zhuǎn)換,2.沒有錯誤檢查,可以向數(shù)組里添加任意類的對象。

ArrayList files = new ArrayList();
...
String filename = (String) files.get(0);//手動強制類型轉(zhuǎn)換
...
files.add(new File("..."))//沒有錯誤檢查

泛型提供了一個更好的解決方案:參數(shù)類型。ArrayList有一個類型參數(shù)來指示元素的類型:

ArrayList<String> files = new ArrayList<String>();
//也可以在構(gòu)造參數(shù)中省略泛型類型。
ArrayList<String> files = new ArrayList<>();

提供了類型參數(shù),編譯器可以很好地利用這個類型來進行判斷,當調(diào)用get的時候就不要強制類型轉(zhuǎn)換,編譯器就知道返回的類型為String。

String filename = files.get(0);

同時還提供了錯誤檢查,當插入類型不為String時,編譯器會提示錯誤。

files.add(new File("..."));//can only add String objects to an ArrayList<String>

參數(shù)類型的魅力在于:使得程序有更好的可讀性安全性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容