亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

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
主站蜘蛛池模板: 亚洲国产成a人v在线 | 深夜国产成人福利在线观看女同 | 免费观看欧美一区二区三区 | 久久视频免费 | 国产一级a毛片高清 | a级在线观看视频 | 免费中国一级啪啪片 | 中文字幕乱码无线码在线 | 久久综合本色宗合一本色 | 综合 91在线精品 | 国内精品伊人久久久影视 | 成人三级在线视频 | 久草视频手机在线 | 成人免费网站 | 5x社区直接进入一区二区三区 | 红色记忆| 一级黄片一级毛片 | 亚洲欧美精品一区二区 | 欧洲老妇bbbbbxxxxx| 久艹视频在线观看 | 精品国产自| 影院成人区精品一区二区婷婷丽春院影视 | 欧美中文字幕一区 | 亚洲精品美女在线观看播放 | 久久99国产亚洲高清观看首页 | 国产日韩欧美综合一区二区三区 | 国产成人高清精品免费软件 | 日韩欧美视频在线播放 | 欧洲美女与男人做爰 | 99视频在线精品 | 大片毛片 | 成人免费视频网址 | 乱子伦xxxx | 午夜大片免费男女爽爽影院久久 | 黄色三级网站免费 | 在线欧美一级毛片免费观看 | 免费观看国产精品 | 精品精品国产自在久久高清 | 91免费永久在线地址 | 国产日本欧美亚洲精品视 | 美女舒服好紧太爽了视频 |