日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java泛型三:通配符详解extends super

發布時間:2025/3/21 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java泛型三:通配符详解extends super 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在java泛型中,? 表示通配符,代表未知類型,< ? extends Object>表示上邊界限定通配符,< ? super Object>表示下邊界限定通配符。

通配符 與 T 的區別
T:作用于模板上,用于將數據類型進行參數化,不能用于實例化對象。?
?:在實例化對象的時候,不確定泛型參數的具體類型時,可以使用通配符進行對象定義。

< T > 等同于 < T extends Object>
< ? > 等同于 < ? extends Object>
1
2
例一:定義泛型類,將key,value的數據類型進行< K, V >參數化,而不可以使用通配符。

public class Container<K, V> {
? ? private K key;
? ? private V value;

? ? public Container(K k, V v) {
? ? ? ? key = k;
? ? ? ? value = v;
? ? }
}
1
2
3
4
5
6
7
8
9
例二:實例化泛型對象,我們不能夠確定eList存儲的數據類型是Integer還是Long,因此我們使用List<? extends Number>定義變量的類型。

List<? extends Number> eList = null;
eList = new ArrayList<Integer>();
eList = new ArrayList<Long>();
1
2
3
上界類型通配符(? extends)
List<? extends Number> eList = null;
eList = new ArrayList<Integer>();
Number numObject = eList.get(0); ?//語句1,正確

//Type mismatch: cannot convert from capture#3-of ? extends Number to Integer
Integer intObject = eList.get(0); ?//語句2,錯誤

//The method add(capture#3-of ? extends Number) in the type List<capture#3-of ? extends Number> is not applicable for the arguments (Integer)
eList.add(new Integer(1)); ?//語句3,錯誤
1
2
3
4
5
6
7
8
9
語句1:List<? extends Number>eList存放Number及其子類的對象,語句1取出Number(或者Number子類)對象直接賦值給Number類型的變量是符合java規范的。?
語句2:List<? extends Number>eList存放Number及其子類的對象,語句2取出Number(或者Number子類)對象直接賦值給Integer類型(Number子類)的變量是不符合java規范的。?
語句3:List<? extends Number>eList不能夠確定實例化對象的具體類型,因此無法add具體對象至列表中,可能的實例化對象如下。

eList = new ArrayList<Integer>();
eList = new ArrayList<Long>();
eList = new ArrayList<Float>();
1
2
3
總結:上界類型通配符add方法受限,但可以獲取列表中的各種類型的數據,并賦值給父類型(extends Number)的引用。因此如果你想從一個數據類型里獲取數據,使用 ? extends 通配符。限定通配符總是包括自己。

下界類型通配符(? super )
List<? super Integer> sList = null;
sList = new ArrayList<Number>();

//Type mismatch: cannot convert from capture#5-of ? super Integer to Number
Number numObj = sList.get(0); ?//語句1,錯誤

//Type mismatch: cannot convert from capture#6-of ? super Integer to Integer
Integer intObj = sList.get(0); ?//語句2,錯誤

sList.add(new Integer(1)); ?//語句3,正確
1
2
3
4
5
6
7
8
9
10
語句1:List<? super Integer> 無法確定sList中存放的對象的具體類型,因此sList.get獲取的值存在不確定性,子類對象的引用無法賦值給兄弟類的引用,父類對象的引用無法賦值給子類的引用,因此語句錯誤。?
語句2:同語句1。?
語句3:子類對象的引用可以賦值給父類對象的引用,因此語句正確。?
總結:下界類型通配符get方法受限,但可以往列表中添加各種數據類型的對象。因此如果你想把對象寫入一個數據結構里,使用 ? super 通配符。限定通配符總是包括自己。

總結
限定通配符總是包括自己
上界類型通配符:add方法受限
下界類型通配符:get方法受限
如果你想從一個數據類型里獲取數據,使用 ? extends 通配符
如果你想把對象寫入一個數據結構里,使用 ? super 通配符
如果你既想存,又想取,那就別用通配符
不能同時聲明泛型通配符上界和下界
---------------------?
作者:zhiboer?
來源:CSDN?
原文:https://blog.csdn.net/claram/article/details/51943742?
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Java泛型三:通配符详解extends super的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本大乳奶做爰 | 在线播放色 | 美女张开腿流出白浆 | 免费三片在线观看网站v888 | 人人爽人人插 | 久久er99热精品一区二区 | 免费黄色小视频在线观看 | 日韩电影第一页 | 国产精品久久久久久久无码 | 精品视频免费观看 | 国产福利小视频在线 | 91文字幕巨乱亚洲香蕉 | 亚洲毛片在线播放 | 色原网| 亚洲第一视频在线 | 韩国主播青草200vip视频 | www.av.cn| 91国产一区 | 性欧美ⅴideo另类hd | 自拍亚洲国产 | 无码人妻精品一区二区三 | av片网 | 五个女闺蜜把我玩到尿失禁 | 探花视频在线免费观看 | 国产精品扒开腿做爽爽爽男男 | 黑人黄色一级片 | 国产欧美日韩另类 | 深夜精品福利 | 久久精品97 | 色欧美视频 | 国内精品卡一卡二卡三 | 性生交大片免费看视频 | 制服 丝袜 激情 欧洲 亚洲 | 欧洲精品码一区二区三区免费看 | 在线看一区二区 | 精品人妻aV中文字幕乱码色欲 | 国产偷自拍视频 | 11孩岁女毛片 | 成人在线视频一区二区三区 | 中文字幕网站 | 成人性生交大片免费看vrv66 | 黄污视频在线观看 | 韩国伦理大全 | 午夜av片 | 亚洲巨乳av | 色婷婷av一区二区三区大白胸 | 秋霞精品 | 国产精品第二十页 | 国产精品久久久久精 | 色吊丝网站 | 在线观看视频你懂得 | 日日碰狠狠添天天爽无码av | 在线观看欧美国产 | 久操伊人 | 国产激情影院 | 少妇淫片| 久久国产成人精品 | 国产又爽又黄视频 | 欧美放荡办公室videos4k | 对白刺激theporn | 国产香蕉一区二区三区 | 亚洲精品久久久久久宅男 | 成人无遮挡 | 亚洲视频在线免费观看 | 国产91区| 亚洲第一精品网站 | 综合色av| 久久久久久久久久一区二区三区 | 刘亦菲毛片一区二区三区 | 俄罗斯乱妇 | 西西人体做爰大胆gogo | 中文字幕精品无码一区二区 | 国产成人精品视频 | 人人插人人搞 | 超碰在线中文字幕 | 色就是色欧美 | 久久久午夜 | 91福利区| 精品美女视频 | 中文字幕免费观看视频 | 日韩在线精品视频一区二区涩爱 | 日本在线视频中文字幕 | 啪啪小视频| 欧美资源在线 | 看污片网站 | 国产精品亚洲综合 | 亚洲国产成人无码av在线 | 国产牛牛 | 三级做爰第一次 | 一区二区视频在线免费观看 | 青青草一区二区三区 | 99久久99久久精品国产片果冻 | 午夜一区二区三区免费 | 91久色视频| 麻豆md0049免费 | 久久h视频| 国产精品一区一区三区 | 精品人妻一区二区色欲产成人 | 精射女上司 |