欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java泛型中逆變和協(xié)變的概念

本篇內(nèi)容主要講解“Java泛型中逆變和協(xié)變的概念”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java泛型中逆變和協(xié)變的概念”吧!

目前成都創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、瀘水網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

正文

OK,今天5分鐘短文就讓咱們聊一聊逆變和協(xié)變這倆個(gè)概念。

1、基礎(chǔ)概念

其實(shí)它們倆的概念很好理解。接下來讓我們仔細(xì)讀一遍下邊的這一段話:

逆變與協(xié)變用來描述類型轉(zhuǎn)換后的繼承關(guān)系。如果A、B表示類型,f(...)表示類型轉(zhuǎn)換,≤表示繼承關(guān)系(比如,A≤B表示A是B的子類)

如果f(...)是逆變的,那么當(dāng)A≤B時(shí)則f(B)≤f(A)成立

如果f(...)是協(xié)變的,那么當(dāng)A≤B時(shí)則f(A)≤f(B)成立

額外補(bǔ)充一條:如果f(...)是不變的,那么當(dāng)A≤B時(shí)則f(B)與f(A)沒有任何關(guān)系

2、代碼場景

如果大家充分理解了上邊的話,其實(shí)就能想到咱們?nèi)粘4a中的例子:數(shù)組就是一種協(xié)變;泛型是不變的。上代碼:

public class A extends B {}  public class B {}     public void test() {  B[] arrs = new A[66];  List<B> list = new ArrayList<A>();  }

這段代碼是編不過的:

Java泛型中逆變和協(xié)變的概念

因?yàn)閿?shù)組是協(xié)變的,所以 A[]是 B[]的子類;而泛型不是,所以 List并不是 List的子類。

3、通配符的意義

因?yàn)檫@個(gè)原因的存在,所以才有了通配符。

3.1、協(xié)變-上限通配符

代碼改成這個(gè)樣子就可以正常編譯了:

Java泛型中逆變和協(xié)變的概念

通配符的存在,讓泛型產(chǎn)生了協(xié)變,讓 List可以變成 List的子類。不過我猜經(jīng)驗(yàn)豐富的同學(xué)已經(jīng)知道,這樣搞“沒什么卵用”,因?yàn)椋?/strong>

Java泛型中逆變和協(xié)變的概念

我們發(fā)現(xiàn),這樣搞完。對于 list變量來說,我們只能 get()不能  add()!一時(shí)接受不了?其實(shí)這里也很好理解,協(xié)變之后對于list來說,我可以指向很多 List的子類。

假設(shè)此時(shí)我們可以隨意 add(),那么對于運(yùn)行期來說簡直是災(zāi)難:因?yàn)槲铱梢噪S意的 add(newA());add(newC())。如果這種情況存在那么我  get()的時(shí)候,是不是只能把它當(dāng)做 B來使用,因?yàn)檫@里有可能有 A也有可能有 C...

這樣搞完全沒有意義...因此也就有了下邊的內(nèi)容:逆變-下限通配符

3.2、逆變-下限通配符

直接上代碼:

public class A extends B {}  public class B {}  public class C extends B {}  public class D extends A {}     public void test2(List<? super A> list){  list.add(new A());  list.add(new B());  list.add(new C());  list.add(new D());  }

此時(shí)我們會(huì)發(fā)現(xiàn):我們可以 add(), A及其子類。而這種實(shí)現(xiàn)就脫胎于咱們逆變這個(gè)概念。

Java泛型中逆變和協(xié)變的概念

到此,相信大家對“Java泛型中逆變和協(xié)變的概念”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

文章題目:Java泛型中逆變和協(xié)變的概念
文章出自:http://aaarwkj.com/article44/gppoee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、搜索引擎優(yōu)化網(wǎng)站導(dǎo)航、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

亚洲国产av国产av| 香蕉久草官网视频观看| 亚洲精品成人久久网| 国产免费高清av在线| 国产精品专区日产一区| 人妻中文字幕av资源| 色综合色综合色综合色综合| 中文字幕乱码人妻一区二| 欧美国产一级二级三级| 99热国产这里只有精品| 国产精品传媒在线视频| 国家成人午夜在线观看| 亚洲人色中文字幕天堂| 国产91精品成人在线观看 | 国产亚洲高清国产拍精品久久| 我想看日韩一级黄色片| 日本一区二区最新免费| 日本午夜视频一区二区| 一区二区三区蜜桃91| 亚洲欧美极品一区色婷婷| 国产亚洲综合另类色专区| 中文字幕日韩人妻一二三区| 亚洲av香蕉一区二区| 亚洲无综合素人在线观看| 欧美人与性禽动交情品| 国产精品白嫩初高中害羞小美女| 欧美一区二区欧美精品| 久久亚洲中文字幕乱码| 一区二区三区三级视频| 精品一区二区视频在线观看网站 | 五月婷婷六月丁香在线观看| 美国一级二级三级黄片| 成人欧美黑人一区二区| 亚洲欧美一区二区色慰| 蜜桃传媒18传媒在线| 天堂av一区二区三区| 麻豆国产原创av色哟哟| 久久麻豆精亚洲av品国产一区| 精品久久久久久久久无| 色婷婷久久五月中文字幕| 哪里可以看日韩免费毛片|