av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

java - Collections類里的swap函數(shù),源碼為什么要新定義一個(gè)final的List型變量l指向傳入的list?

瀏覽:113日期:2023-12-04 15:41:39

問題描述

JDK1.7 源碼如下:

public static void swap(List<?> list, int i, int j) { final List l = list; l.set(i, l.set(j, l.get(i)));}

其中的這句final List l = list 有什么意義?直接操作傳進(jìn)來的list不也一樣的結(jié)果嗎?

本人是自學(xué)java的新手,看到這里有點(diǎn)想不通,希望前輩們能幫我解惑,不勝感謝!

問題解答

回答1:

試一下:

import java.util.List;public class Test { public static void swap(List<?> list, int i, int j) {list.set(i, list.set(j, list.get(i))); }}

編譯錯(cuò)誤:

.Test.java:7: 錯(cuò)誤: 無法將接口 List<E>中的方法 set應(yīng)用到給定類型;list.set(i, list.set(j, list.get(i)));^ 需要: int,CAP#1 找到: int,CAP#2 原因: 參數(shù)不匹配; Object無法轉(zhuǎn)換為CAP#1 其中, E是類型變量: E擴(kuò)展已在接口 List中聲明的Object 其中, CAP#1,CAP#2是新類型變量: CAP#1從?的捕獲擴(kuò)展Object CAP#2從?的捕獲擴(kuò)展Object1 個(gè)錯(cuò)誤

因?yàn)閘ist的類型是List<?>,不知道具體的類型,所以只能從列表里取出一Object,不能往列表插入。

所以轉(zhuǎn)成List。

或者換成List<T>:

public static <T> void swap(List<T> list, int i, int j) {...}

標(biāo)簽: java
主站蜘蛛池模板: 精品亚洲一区二区三区 | 99re在线观看 | 久久y| 电影91久久久 | 久久国产精品无码网站 | av天天看 | 成人国产精品久久 | 午夜视频在线免费观看 | 香蕉婷婷| 日韩成人久久 | 91亚洲国产成人精品一区二三 | 欧美一级在线观看 | 亚洲一区二区免费电影 | 99reav| 波多野结衣在线观看一区二区三区 | 在线观看 亚洲 | 91久久北条麻妃一区二区三区 | 亚洲欧美日韩在线 | 亚洲欧美日本在线 | 国产福利资源在线 | 精品视频在线观看 | av网站免费在线观看 | 免费在线观看成人av | 天天躁人人躁人人躁狂躁 | 欧美二区在线 | 精品综合 | 久草.com | 国产乱码精品一区二区三区忘忧草 | 婷婷丁香在线视频 | 欧美大片一区 | 国产精品99久久久久久动医院 | 俺去俺来也www色官网cms | 久草视频观看 | 国产精品久久久久aaaa九色 | 2019天天干天天操 | 欧美在线视频一区二区 | 国产精品免费一区二区三区四区 | 视频在线观看一区二区 | 中文字幕日韩欧美一区二区三区 | 久久久免费电影 | 久国产视频 |