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

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

為什么列表<地圖<?擴展數(shù)字,?extends Number>>

為什么列表<地圖<?擴展數(shù)字,?extends Number>>

郎朗坤 2022-12-21 13:13:23
我正在遍歷一個地圖,其鍵是圖表,值是將顯示在圖表上的數(shù)據(jù)集。數(shù)據(jù)集是地圖列表,因為我在每個圖表上顯示了多個 XYSeries(一個系列 - 一張帶有 x 和 y 值的地圖)。在某些圖表中,x 軸/y 軸值是雙精度值,而在其他圖表中是整數(shù)。因此,我的數(shù)據(jù)集類型為 < ? 擴展編號>。我究竟做錯了什么?for (Map.Entry<Chart, List<Map<? extends Number, ? extends Number>>> entry : tcInstance.getMapChartDataset().entrySet()) {        switch (entry.getKey().getTitle()) {            case something:                entry.setValue(listOfMaps1);                break;            case something else:                entry.setValue(listOfMaps2);                break;           // other case options         }}這些是地圖列表的聲明:static List<Map<Integer, Double>> listOfMaps1 = new ArrayList<>();static List<Map<Double, Double>> listOfMaps2 = new ArrayList<>();我希望設(shè)置值,但我得到了這些錯誤,這些錯誤表明方法 setValue 不適用于參數(shù) (List>)(對于參數(shù) (List>) 也有同樣的錯誤)。
查看完整描述

1 回答

?
紅糖糍粑

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

一個List<Map<Integer,Double>>不是一個List<Map<? extends Number,? extends Number>>。


如果是的話,我可以這樣做:


List<Map<Integer,Double>> list = new ArrayList<>();

List<Map<? extends Number,? extends Number>> listX = list;  // Doesn't work, pretend it does.


Map<Double,Integer> map = new HashMap<>();

map.put(0.0, 0);


listX.add(map);


for (Map<Integer, Double> e : list) {

  Integer i = e.keySet().iterator().next();  // ClassCastException!

}

你會得到一個ClassCastException因為e有一把Double鑰匙,而不是Integer預(yù)期的那樣。


Ideone demo


如果您向通配符列表添加額外的上限:


List<? extends Map<? extends Number,? extends Number>>

     ^-------^ here

那么你將無法添加map到listX,所以它是安全的。


查看完整回答
反對 回復(fù) 2022-12-21
  • 1 回答
  • 0 關(guān)注
  • 87 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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