色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:115日期: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 有什么意義?直接操作傳進來的list不也一樣的結果嗎?

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

問題解答

回答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))); }}

編譯錯誤:

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

因為list的類型是List<?>,不知道具體的類型,所以只能從列表里取出一Object,不能往列表插入。

所以轉成List。

或者換成List<T>:

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

標簽: java
主站蜘蛛池模板: 久久综合综合久久 | 成年人视频在线观看免费 | 国产精品视频视频久久 | 男人久久天堂 | 波多野结衣免费观看视频 | 国产美女一区精品福利视频 | 欧美91精品久久久久网免费 | 国产成人免费在线观看 | 日本视频播放免费线上观看 | 女教师的一级毛片 | 成人午夜视频一区二区国语 | 国产午夜精品久久理论片 | 国产中文字幕在线免费观看 | 永久免费观看午夜视频在线 | 亚洲欧美国产精品 | 欧洲欧美成人免费大片 | 欧美日韩色黄大片在线视频 | 精品国产一区二区三区不卡蜜臂 | 成年18网站免费视频网站 | 午夜久久网 | 日本一线a视频免费观看 | 国内精品久久久久久久影视麻豆 | 模特三级在线观看 | 综合 欧美 国产 视频二区 | 成人亚洲国产精品久久 | 国产一级毛片视频在线! | 美国毛片亚洲社区在线观看 | 久久综合久美利坚合众国 | 亚洲国产剧情在线精品视 | 国产三级a三级三级三级 | 日本在线亚州精品视频在线 | 日本欧美一区二区三区不卡视频 | 亚洲欧美在线看 | a级片一级片 | 午夜国产| 国内精品1区1区3区4区 | 99爱视频精品免视看 | 色站综合 | 欧美多人三级级视频播放 | 精品欧美一区视频在线观看 | 欧美自拍另类 |