
文章插圖
一般的類和方法,只能使用具體的類型,要么是基礎數(shù)據(jù)類型,要么是自定義類 。
如果要編寫可以應用與多種類型的代碼,這種刻板的限制對代碼的束縛就會很大 。
泛型的字面概念:適合用于許多類型 。
在面向?qū)ο笾?,多態(tài)算是一種泛化機制 。
泛型的使用例子:在如圖的例子中T就是類型參數(shù)
當你創(chuàng)建Holder對象時,必須指明想持有什么類型的對象,將其置于尖括號內(nèi),就像main()中那樣 。然后,你就只能在Holder中存入該類型(或其子類,以為多態(tài)與泛型不沖突)的對象了 。并且,在你從Holder中取出它持有的對象時,自動地就是正確的類型 。
java泛型核心概念:告訴編譯器想要什么類型,讓后編譯器幫你處理一切細節(jié) 。
一般而言,你可以認為泛型與其他的類型差不多,只不過他們碰巧有參數(shù)罷了 。
Java泛型中的標記符含義:E – Element (在集合中使用,因為集合中存放的是元素)
T – Type(Java 類)
K – Key(鍵)
V – Value(值)
N – Number(數(shù)值類型)
? – 表示不確定的java類型
S、U、V – 2nd、3rd、4th types
使用泛型遇到的問題1.任何基礎數(shù)據(jù)類型都不能作為類型參數(shù):
學習泛型你會發(fā)現(xiàn),Java泛型的限制之一,不能間基礎數(shù)據(jù)類型用作類型參數(shù) 。
2.事項參數(shù)化接口:
一個類不能同時實現(xiàn)同一個泛型接口的兩種變體,由于擦除的原因,這兩個變體會成為相同的接口 。
3.轉(zhuǎn)型和警告
使用帶有泛型類型參數(shù)的轉(zhuǎn)型或instanceof不會有任何效果 。
4.重載
有與擦除的原因,重載方法將產(chǎn)生相同的類型簽名 。
5.基類劫持了接口
Java中使用泛型最吸引人的地方就是在容器類中,包括List,各種Set,各種Map 。
泛型優(yōu)點:當一個對象被放置在容器中時,這個對象會北向上轉(zhuǎn)型為Object,因此你會丟失類型信息 。java如果類型放置錯誤導致取出的時候會進行強制類型轉(zhuǎn)換,會得到一個RuntimeException,雖然你能發(fā)現(xiàn)問題,當時是在運行時發(fā)現(xiàn)的而非在編譯發(fā)現(xiàn)它的 。引入泛型并不會讓你誤用放入容器中的對象 。
以上關于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- javascript延時函數(shù) js延遲1秒的方法
- Java常用的五種設計模式 設計模式有哪些
- javascript定義數(shù)組的方法 js創(chuàng)建數(shù)組的幾種方式
- 電視劇《重中之重》講述了什么故事 《重中之重》各人物角色介紹
- 互聯(lián)網(wǎng)常識:如何在IE瀏覽器中禁用JavaScript
- python與java的區(qū)別 java語言的主要特點是什么
- web前端開發(fā)語言 javascript基礎知識總結(jié)
- 講述2k17生涯模式位置 2k17生涯模式怎么加點
- 講述30個民間傳說故事 民間故事有哪些
- java監(jiān)聽器的原理與實現(xiàn) java控件使用方法
