這篇文章主要介紹“Java泛型是怎么來的”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Java泛型是怎么來的”文章能幫助大家解決問題。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了樂昌免費(fèi)建站歡迎大家使用!
為什么需要泛型
Java的數(shù)據(jù)類型一般都是在定義時(shí)就需要確定,這種強(qiáng)制的好處就是類型安全,不會(huì)出現(xiàn)像弄一個(gè)ClassCastException的數(shù)據(jù)給jvm,數(shù)據(jù)安全那么執(zhí)行的class就會(huì)很穩(wěn)定。但是假如說我不知道這個(gè)參數(shù)要傳什么類型的,因?yàn)楣拘枨笤谧?,如果寫死的那就只能便以此需求就改一次,很麻煩。sun公司也注意到這個(gè)問題,這樣會(huì)讓代碼的靈活性降低,他們就研究出了泛型。
泛型初識(shí)
什么是泛型,可以字面理解就是一個(gè)泛泛的類型,他是不確定的,在Java代碼編譯的時(shí)候用泛型是不會(huì)出錯(cuò)的,而在運(yùn)行期時(shí)就會(huì)報(bào)錯(cuò),說你這種第一是不合理的。這是為什么呢。因?yàn)闉榱颂岣哽`活性,就在編譯時(shí)期將條件放寬,但是泛型一定要在運(yùn)行的時(shí)候告訴jvm你給我的數(shù)據(jù)到底是什么類型的,否則jvm會(huì)是懵逼的。所以泛型的好處就是將類型的靈活性提高,也只是在Java語法的基礎(chǔ)上提高,不過泛型還是比較實(shí)用的。
何時(shí)使用泛型
泛型的應(yīng)用場(chǎng)景就是應(yīng)用在模型(可以理解為存儲(chǔ)數(shù)據(jù)的盒子),我為了這個(gè)盒子適用更多的地方我就用將需要存入的數(shù)據(jù)用一個(gè)泛型表示,當(dāng)然可以傳入多值。如果是相同類型的對(duì)象就用一個(gè)泛型的數(shù)組比較好,學(xué)過集合的小伙伴應(yīng)該都知道,沒學(xué)過的那你應(yīng)該補(bǔ)補(bǔ)課了。
泛型的語法
public class A
泛型的缺點(diǎn)或者為什么需要上、下邊界
泛型的雖然強(qiáng)大,但是世界上任何東西東部是完美的。它也有缺陷。比如說我有一個(gè)盒子我想裝蘋果,但是我還可能想裝香蕉那怎么辦。那還不好說,在給一個(gè)參數(shù)不就行了,那十個(gè)呢,二十個(gè)呢。em....的確是。如果說我們想裝的東西都屬于一個(gè)類并且只要是這個(gè)類的子類就可以裝。這個(gè)想法sun為我們想好了。那就是用上邊界通配符。語法是 T是泛型,M是T的父類。我們就定義一個(gè)水果類(Fruit),盛裝就容器就是盤子(Dish),現(xiàn)在我們就可以裝任何水果了,不錯(cuò)吧!
上邊界Java代碼
public class Dish
下邊界Java代碼
public class Dish
什么是上邊界通配符
當(dāng)泛型T給定形如 的A類型到A類型任何子類的限制域,可以匹配任何在此限制域中的類型,此種表示叫上邊界通配符。
上邊界通配符理解
什么是下邊界通配符
當(dāng)泛型T給定形如 的A類型到A類型任何父類的限制域,可以匹配任何在此限制域中的類型,此種表示叫下邊界通配符。
下邊界通配符理解#
上下邊界通配符的缺點(diǎn)
上界 extends T>不能往里存,只能往外取。
解釋
因?yàn)榫幾g器只知道傳入的是T的子類,但具體是哪一個(gè)編譯器不知道,他只標(biāo)注了一個(gè)占位符,當(dāng)?傳過來時(shí),他不知道這能不能和占位符匹配,所以set不了。
下界 super T>不影響往里存,但往外取只能放在Object對(duì)象里。
解釋
因?yàn)橄逻吔缫呀?jīng)限制了?的粒度,他只可能是T本身或者是T的父類。我們想想,我想要一個(gè)T,你卻返回給我一個(gè)比T小的Object,這樣我們就因?yàn)榫葥p失而拿不到想要的數(shù)據(jù)了。
關(guān)于“Java泛型是怎么來的”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。