第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 1.6:創(chuàng)建List <T>的數(shù)組

Java 1.6:創(chuàng)建List <T>的數(shù)組

冉冉說 2019-10-21 10:10:11
為什么不能創(chuàng)建List數(shù)組?List<String>[] nav = new List<String>[] { new ArrayList<String>() };Eclipse說“無法創(chuàng)建列表的通用數(shù)組”要么ArrayList<String>[] nav = new ArrayList<String>[] { new ArrayList<String>() };Eclipse說“無法創(chuàng)建ArrayList的通用數(shù)組”要么List<String>[] getListsOfStrings() {    List<String> groupA = new ArrayList<String>();    List<String> groupB = new ArrayList<String>();    return new List<String>[] { groupA, groupB };}但是我可以這樣做:List[] getLists() {    return new List[] { new ArrayList(), new ArrayList() };}Eclipse表示List和ArrayList是原始類型,但可以編譯...看起來很簡單,為什么不起作用?
查看完整描述

3 回答

?
撒科打諢

TA貢獻1934條經(jīng)驗 獲得超2個贊

好吧,泛型教程為您的問題提供了答案。


數(shù)組對象的組件類型不能是類型變量或參數(shù)化類型,除非它是(無界)通配符類型。您可以聲明其元素類型是類型變量或參數(shù)化類型的數(shù)組類型,但不能聲明數(shù)組對象。


當(dāng)然,這很煩人。為避免出現(xiàn)以下情況,必須使用此限制:


// Not really allowed.

List<String>[] lsa = new List<String>[10];

Object o = lsa;

Object[] oa = (Object[]) o;

List<Integer> li = new ArrayList<Integer>();

li.add(new Integer(3));

// Unsound, but passes run time store check

oa[1] = li;


// Run-time error: ClassCastException.

String s = lsa[1].get(0);

如果允許使用參數(shù)化類型的數(shù)組,則前面的示例將在編譯時沒有任何未經(jīng)檢查的警告,但在運行時會失敗。我們已經(jīng)將類型安全性作為泛型的主要設(shè)計目標(biāo)。


查看完整回答
反對 回復(fù) 2019-10-21
?
守候你守候我

TA貢獻1802條經(jīng)驗 獲得超10個贊

通常,您不能創(chuàng)建泛型類型的數(shù)組。

其原因是,在JVM有沒有辦法檢查,只有正確的對象放入它(與ArrayStoreExceptions),因為之間的差異List<String>,并List<Integer>在運行時不存在的。

當(dāng)然,您可以使用原始類型List或未綁定的通配符類型來欺騙編譯器List<?>,然后將其(使用未經(jīng)檢查的類型轉(zhuǎn)換)轉(zhuǎn)換為List<String>。但是,您有責(zé)任僅將其放在List<String>其中,而不能放入其他列表。


查看完整回答
反對 回復(fù) 2019-10-21
  • 3 回答
  • 0 關(guān)注
  • 1314 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號