最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Java泛型是怎么來(lái)的-創(chuàng)新互聯(lián)

這篇文章主要介紹“Java泛型是怎么來(lái)的”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Java泛型是怎么來(lái)的”文章能幫助大家解決問(wèn)題。

十載的潛山網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整潛山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“潛山網(wǎng)站設(shè)計(jì)”,“潛山網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

為什么需要泛型

Java的數(shù)據(jù)類(lèi)型一般都是在定義時(shí)就需要確定,這種強(qiáng)制的好處就是類(lèi)型安全,不會(huì)出現(xiàn)像弄一個(gè)ClassCastException的數(shù)據(jù)給jvm,數(shù)據(jù)安全那么執(zhí)行的class就會(huì)很穩(wěn)定。但是假如說(shuō)我不知道這個(gè)參數(shù)要傳什么類(lèi)型的,因?yàn)楣拘枨笤谧儯绻麑?xiě)死的那就只能便以此需求就改一次,很麻煩。sun公司也注意到這個(gè)問(wèn)題,這樣會(huì)讓代碼的靈活性降低,他們就研究出了泛型。

泛型初識(shí)

什么是泛型,可以字面理解就是一個(gè)泛泛的類(lèi)型,他是不確定的,在Java代碼編譯的時(shí)候用泛型是不會(huì)出錯(cuò)的,而在運(yùn)行期時(shí)就會(huì)報(bào)錯(cuò),說(shuō)你這種第一是不合理的。這是為什么呢。因?yàn)闉榱颂岣哽`活性,就在編譯時(shí)期將條件放寬,但是泛型一定要在運(yùn)行的時(shí)候告訴jvm你給我的數(shù)據(jù)到底是什么類(lèi)型的,否則jvm會(huì)是懵逼的。所以泛型的好處就是將類(lèi)型的靈活性提高,也只是在Java語(yǔ)法的基礎(chǔ)上提高,不過(guò)泛型還是比較實(shí)用的。

何時(shí)使用泛型

泛型的應(yīng)用場(chǎng)景就是應(yīng)用在模型(可以理解為存儲(chǔ)數(shù)據(jù)的盒子),我為了這個(gè)盒子適用更多的地方我就用將需要存入的數(shù)據(jù)用一個(gè)泛型表示,當(dāng)然可以傳入多值。如果是相同類(lèi)型的對(duì)象就用一個(gè)泛型的數(shù)組比較好,學(xué)過(guò)集合的小伙伴應(yīng)該都知道,沒(méi)學(xué)過(guò)的那你應(yīng)該補(bǔ)補(bǔ)課了。

泛型的語(yǔ)法

public class A{ T t;}

泛型的缺點(diǎn)或者為什么需要上、下邊界

泛型的雖然強(qiáng)大,但是世界上任何東西東部是完美的。它也有缺陷。比如說(shuō)我有一個(gè)盒子我想裝蘋(píng)果,但是我還可能想裝香蕉那怎么辦。那還不好說(shuō),在給一個(gè)參數(shù)不就行了,那十個(gè)呢,二十個(gè)呢。em....的確是。如果說(shuō)我們想裝的東西都屬于一個(gè)類(lèi)并且只要是這個(gè)類(lèi)的子類(lèi)就可以裝。這個(gè)想法sun為我們想好了。那就是用上邊界通配符。語(yǔ)法是 T是泛型,M是T的父類(lèi)。我們就定義一個(gè)水果類(lèi)(Fruit),盛裝就容器就是盤(pán)子(Dish),現(xiàn)在我們就可以裝任何水果了,不錯(cuò)吧!

上邊界Java代碼

public class Dish{ private T fruitChild; public Dish(T fruitChild){ this.fruitChild = fruitChild; } public T getFruitChild(){ return fruitChild; }  public void setFruitChild(T f){ this.fruitChild = f; } public static void main(String[] args){ Dish dish = new Dish(); Apple apple = new apple(); //apple must be Fruit child; dish.setFruitChild(apple); system.out.printf(dish.getFruitChild); }}

下邊界Java代碼

public class Dish{ private T appleFather; public Dish(T appleFather){ this.appleFather = appleFather; } public T getAppleFather(){ return appleFather; } public void setAppleFather(T f){ this.appleFather = f; } public static void main(String[] args){ Dish dish = new Dish(); Fruit fruit = new Fruit(); //fruit must be apple son; dish.setAppleFather(fruit); system.out.printf(dish.getAppleFather); }}

什么是上邊界通配符

當(dāng)泛型T給定形如 的A類(lèi)型到A類(lèi)型任何子類(lèi)的限制域,可以匹配任何在此限制域中的類(lèi)型,此種表示叫上邊界通配符。

上邊界通配符理解

什么是下邊界通配符

當(dāng)泛型T給定形如 的A類(lèi)型到A類(lèi)型任何父類(lèi)的限制域,可以匹配任何在此限制域中的類(lèi)型,此種表示叫下邊界通配符。

下邊界通配符理解#

上下邊界通配符的缺點(diǎn)

上界不能往里存,只能往外取。

解釋

因?yàn)榫幾g器只知道傳入的是T的子類(lèi),但具體是哪一個(gè)編譯器不知道,他只標(biāo)注了一個(gè)占位符,當(dāng)?傳過(guò)來(lái)時(shí),他不知道這能不能和占位符匹配,所以set不了。

下界不影響往里存,但往外取只能放在Object對(duì)象里。

解釋

因?yàn)橄逻吔缫呀?jīng)限制了?的粒度,他只可能是T本身或者是T的父類(lèi)。我們想想,我想要一個(gè)T,你卻返回給我一個(gè)比T小的Object,這樣我們就因?yàn)榫葥p失而拿不到想要的數(shù)據(jù)了。

關(guān)于“Java泛型是怎么來(lái)的”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。


本文名稱(chēng):Java泛型是怎么來(lái)的-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://fisionsoft.com.cn/article/dsjcho.html