博爲峯Java技術題 ——JavaSE 泛型Ⅰ

博爲峯小博老師:java

[泛型初探]安全

在泛型出現以前,是這麼寫代碼的:優化

固然這是徹底容許的,由於List裏面的內容是Object類型的,天然任何對象類型均可以放入、均可以取出,可是這麼寫會有兩個問題:3d

一、當一個對象放入集合時,集合不會記住此對象的類型,當再次從集合中取出此對象時,該對象的編譯類型變成了Objectcode

二、運行時須要人爲地強制轉換類型到具體目標,實際的程序毫不會這麼簡單,一個不當心就會出現java.lang.ClassCastException,即類型轉換異常對象

因此,泛型出現以後,上面的代碼就改爲了你們都熟知的寫法:blog

這就是泛型。泛型是對Java語言類型系統的一種擴展,有點相似於C++的模板,能夠把類型參數看做是使用參數化類型時指定的類型的一個佔位符。引入泛型,是對Java語言一個較大的功能加強,帶來了不少的好處:ip

一、類型安全。類型錯誤如今在編譯期間就被捕獲到了,而不是在運行時看成java.lang.ClassCastException展現出來,將類型檢查從運行時挪到編譯時有助於開發者更容易找到錯誤,並提升程序的可靠性開發

二、消除了代碼中許多的強制類型轉換,加強了代碼的可讀性get

三、爲較大的優化帶來了可能

相關文章
相關標籤/搜索