国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

瀏覽:110日期: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在线永久 | 国产三香港三韩国三级不卡 | 成人免费大片黄在线观看com | 国产日韩线路一线路二 | 欧美丝袜自拍 | 色狠狠色综合吹潮 | 国产精品久久久久无码av | 国产精品无码久久久久 | 99视频精品全部在线播放 | 草草国产成人免费视频 | 午夜刺激爽爽视频免费观看 | 我要看一级大片 | 久久国产精品高清一区二区三区 | 亚洲视频免费播放 | 99精品视频免费观看 | 全国男人的天堂网 | 一级欧美日韩 | 久久久久国产精品免费看 | 草草影院ccyycom浮力影院 | 黄色毛片在线 | 亚洲国产国产综合一区首页 | 九九手机视频 | 日本欧美色 | 中文在线日韩 | 欧美午夜视频 | 国产不卡一区二区三区免费视 | 黄色免费在线观看视频 | 久久夜色精品国产噜噜亚洲a | 初爱视频教程在线观看高清 | 美女黄网站人色视频免费国产 | 日本全黄 | 香港经典毛片a免费观看 | 成人高清视频在线观看 | 99成人免费视频 | 毛片在线视频 | 精品国产自在现线看久久 | 国产成人久久精品区一区二区 | 国产一区二区三区在线观看视频 |