java 方法泛型_Java基础学习,什么是泛型概念,使用泛型有哪些好处?
一般的類和方法,只能使用具體的類型,要么是基礎(chǔ)數(shù)據(jù)類型,要么是自定義類。
如果要編寫可以應(yīng)用與多種類型的代碼,這種刻板的限制對(duì)代碼的束縛就會(huì)很大。
泛型的字面概念:
適合用于許多類型。
在面向?qū)ο笾?#xff0c;多態(tài)算是一種泛化機(jī)制。
泛型的使用例子:
在如圖的例子中T就是類型參數(shù)
當(dāng)你創(chuàng)建Holder對(duì)象時(shí),必須指明想持有什么類型的對(duì)象,將其置于尖括號(hào)內(nèi),就像main()中那樣。然后,你就只能在Holder中存入該類型(或其子類,以為多態(tài)與泛型不沖突)的對(duì)象了。并且,在你從Holder中取出它持有的對(duì)象時(shí),自動(dòng)地就是正確的類型。
java泛型核心概念:
告訴編譯器想要什么類型,讓后編譯器幫你處理一切細(xì)節(jié)。
一般而言,你可以認(rèn)為泛型與其他的類型差不多,只不過(guò)他們碰巧有參數(shù)罷了。
Java泛型中的標(biāo)記符含義:
E - Element (在集合中使用,因?yàn)榧现写娣诺氖窃?
T - Type(Java 類)
K - Key(鍵)
V - Value(值)
N - Number(數(shù)值類型)
? - 表示不確定的java類型
S、U、V - 2nd、3rd、4th types
使用泛型遇到的問(wèn)題
1.任何基礎(chǔ)數(shù)據(jù)類型都不能作為類型參數(shù):
學(xué)習(xí)泛型你會(huì)發(fā)現(xiàn),Java泛型的限制之一,不能間基礎(chǔ)數(shù)據(jù)類型用作類型參數(shù)。
2.事項(xiàng)參數(shù)化接口:
一個(gè)類不能同時(shí)實(shí)現(xiàn)同一個(gè)泛型接口的兩種變體,由于擦除的原因,這兩個(gè)變體會(huì)成為相同的接口。
3.轉(zhuǎn)型和警告
使用帶有泛型類型參數(shù)的轉(zhuǎn)型或instanceof不會(huì)有任何效果。
4.重載
有與擦除的原因,重載方法將產(chǎn)生相同的類型簽名。
5.基類劫持了接口
Java中使用泛型最吸引人的地方就是在容器類中,包括List,各種Set,各種Map。
泛型優(yōu)點(diǎn):
當(dāng)一個(gè)對(duì)象被放置在容器中時(shí),這個(gè)對(duì)象會(huì)北向上轉(zhuǎn)型為Object,因此你會(huì)丟失類型信息。java如果類型放置錯(cuò)誤導(dǎo)致取出的時(shí)候會(huì)進(jìn)行強(qiáng)制類型轉(zhuǎn)換,會(huì)得到一個(gè)RuntimeException,雖然你能發(fā)現(xiàn)問(wèn)題,當(dāng)時(shí)是在運(yùn)行時(shí)發(fā)現(xiàn)的而非在編譯發(fā)現(xiàn)它的。引入泛型并不會(huì)讓你誤用放入容器中的對(duì)象。
大家來(lái)和我一起學(xué)JAVA吧,本篇介紹JAVA泛型主要特性。接下來(lái)會(huì)繼續(xù)總結(jié)JAVA相關(guān)技術(shù),求圍觀!可惜平臺(tái)不適合寫代碼,手機(jī)看會(huì)比較亂。
下一章預(yù)告:LinkedList
總結(jié)
以上是生活随笔為你收集整理的java 方法泛型_Java基础学习,什么是泛型概念,使用泛型有哪些好处?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c# excel导出png_C#与Hal
- 下一篇: java 向上取整_java 中的异常