午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

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

瀏覽:223日期: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丨porny丨露出| 精品国产免费人成在线观看 | 黑人精品一区二区 | 超碰成人福利 | www.国产精品.com | 91成人精品一区在线播放 | 天天干天天操天天 | 久草综合网 | 色妹子综合 | 中文在线观看视频 | 久久综合色88 | 亚洲三级久久 | 欧美日韩在线看 | 激情开心成人网 | 香蕉国产精品 | 国产91区 | 欧美日韩一区二区区别是什么 | 天天综合在线观看 | 一区二区欧美精品 | 99久久久国产精品 | 日本五十路视频 | 日韩伊人网 | av第一页| 日日夜夜艹 | 亚洲成a人片在线 | 一级黄视频 | 国产精品a久久久久 | 青青免费在线视频 | 在线国产日韩 | 欧美国产视频 | 鲁大师在线高清在线播放免费观看 | 久久av色| 欧美黄色一级视频 | 欧美精品在线播放 | 成年免费视频黄网站在线观看 | 91视频在线观看网站 | 男人在线观看视频 | 亚洲欧美日本在线 | 免费国产高清 |