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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

一個(gè)奇怪的問(wèn)題,從泛型為Integer的Set中取到的遍歷取到的值為String

一個(gè)奇怪的問(wèn)題,從泛型為Integer的Set中取到的遍歷取到的值為String

哆啦的時(shí)光機(jī) 2019-04-17 18:15:00
public ResponseResult putAllAnswer(Map<Integer, String> map) {         Set<Integer> testIds=map.keySet();         List<Integer> errorAnswer=new LinkedList<Integer>();         for(Integer testId:testIds){             Test test=testMapper.selectByPrimaryKey(testId);             if(map.get(testId).equals(test.getRightAnswer())){                 continue;             }else{                 errorAnswer.add(testId);             }         } } public ResponseResult putAllAnswer(HashMap<Integer, String> map) {         Set<Integer> testIds=map.keySet();         List<Integer> errorAnswer=new LinkedList<Integer>();         Iterator<Integer> iter=testIds.iterator();         while(iter.hasNext()){             System.out.println(iter.next().getClass());             Integer testId=iter.next();         } }代碼如上,在執(zhí)行到for循環(huán)內(nèi)時(shí),testId無(wú)法接受testIds中的數(shù)據(jù),顯示類(lèi)型轉(zhuǎn)換錯(cuò)誤,String無(wú)法轉(zhuǎn)換為Integer類(lèi)型,非常奇怪,即使是通過(guò)Iterator遍歷也無(wú)法獲取set集合中的值,始終顯示String無(wú)法轉(zhuǎn)換為Integer類(lèi)型的報(bào)錯(cuò),甚至在無(wú)法通過(guò)getClass方法來(lái)獲取對(duì)象的類(lèi)型信息,執(zhí)行該語(yǔ)句也會(huì)報(bào)錯(cuò)
查看完整描述

3 回答

?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

Set testIds=map.keySet();

這一行改為 Set testIds=map.keySet();

原因就是key不是Integer,沒(méi)別的原因.
你這個(gè)錯(cuò)誤相當(dāng)于

    public static void main(String[] args) {
        Map map = new HashMap();
        map.put("a","a");
        Map<Integer,String> m = map;
        Set<Integer> set = m.keySet();
        for (Integer integer : set) {
            System.out.println(integer);
        }
    }


查看完整回答
反對(duì) 回復(fù) 2019-05-14
?
尚方寶劍之說(shuō)

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊

System.out.println(iter.next().getClass());
Integer testId=iter.next();
第二個(gè)方法迭代了兩次,這個(gè)可能會(huì)超過(guò)迭代器的邊界。
從代碼上看就這里有問(wèn)題。

查看完整回答
反對(duì) 回復(fù) 2019-05-14
?
千萬(wàn)里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

1.上面的類(lèi)型轉(zhuǎn)換錯(cuò)誤,可能是你這個(gè) Test test=testMapper.selectByPrimaryKey(testId);查詢(xún)數(shù)據(jù)庫(kù)出來(lái)的字段和bean類(lèi)中的類(lèi)型不匹配導(dǎo)致的
2.還有你有一個(gè)越界行為,循環(huán)一次調(diào)用一次iter.next()這個(gè),代表取的是上一次取的接下來(lái)一個(gè)值,但是iter.hasNext()還處在上一次值的位置(這就像是我右腳只邁了一步,但是我左腳邁了兩步,兩腳不同步,一腳已經(jīng)到達(dá)終點(diǎn),另一腳還沒(méi)跟上來(lái)的情況)

查看完整回答
反對(duì) 回復(fù) 2019-05-14
  • 3 回答
  • 0 關(guān)注
  • 453 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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