最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

為什么說(shuō)List 不隸屬于List

2023-07-20 11:55 作者:碼農(nóng)青年  | 我要投稿

在 Java 中,泛型是不可協(xié)變的,這意味著 List<String> 并不是 List<Object> 的子類型。這樣的設(shè)計(jì)是為了保護(hù)你免受無(wú)意引入錯(cuò)誤的危險(xiǎn)。

假設(shè) Java 允許這樣的協(xié)變,那么你可能會(huì)遇到以下情況:

javaCopy code

List<String> stringList =?new?ArrayList<>(); List<Object> objectList = stringList;?// 假設(shè)這是合法的?objectList.add(new?Object());?// 這將在運(yùn)行時(shí)出錯(cuò),因?yàn)槟阍噲D在 String 類型的列表中添加一個(gè) Object 類型的元素?String?s?=?stringList.get(0);?// 類型錯(cuò)誤

在這個(gè)例子中,如果 Java 允許 List<String>List<Object> 的子類型,那么你就可以將一個(gè) Object 類型的元素添加到 String 類型的列表中,這在運(yùn)行時(shí)將導(dǎo)致錯(cuò)誤。為了避免這種情況,Java 的泛型設(shè)計(jì)為不可協(xié)變。

但是,Java 提供了一種方式來(lái)創(chuàng)建一個(gè)只讀的 List<Object>,這樣就可以接受 List<String> 了。你可以使用通配符來(lái)創(chuàng)建一個(gè)只讀的 List<Object>

javaCopy code

List<String> stringList =?new?ArrayList<>(); List<?> objectList = stringList;?// 這是合法的

在這種情況下,objectList 是只讀的,你不能向其添加任何類型的對(duì)象。這種方式提供了某種形式的協(xié)變性,同時(shí)也避免了類型錯(cuò)誤。


為什么說(shuō)List 不隸屬于List的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
镶黄旗| 寿宁县| 遂平县| 原平市| 海宁市| 元朗区| 武陟县| 乡宁县| 浏阳市| 青海省| 龙胜| 中西区| 子洲县| 崇仁县| 衢州市| 金塔县| 甘洛县| 垣曲县| 涡阳县| 澜沧| 镇赉县| 新乡市| 水城县| 敦煌市| 焉耆| 牟定县| 祁连县| 项城市| 辽阳县| 中超| 陇南市| 南安市| 化州市| 汝南县| 年辖:市辖区| 黄梅县| 连南| 涟水县| 永登县| 榆林市| 道孚县|