不明白為什么添加的一定要是course類(lèi)型
2分30秒向courseToSelect中添加字符串時(shí)報(bào)錯(cuò)(Exception in thread"main"java.lang.ClassCastException:xxxxx,為什么一定要求add的必須是course類(lèi)型哇?
2分30秒向courseToSelect中添加字符串時(shí)報(bào)錯(cuò)(Exception in thread"main"java.lang.ClassCastException:xxxxx,為什么一定要求add的必須是course類(lèi)型哇?
2016-01-13
舉報(bào)
2022-03-27
換了還是報(bào)錯(cuò)啊這門(mén)課程面對(duì)的是高級(jí)用戶(hù),童鞋可以從初級(jí)課程開(kāi)始學(xué)習(xí)~
2016-02-17
我也剛學(xué),也有這個(gè)問(wèn)題,我試了試,覺(jué)的“3000sama"同學(xué)說(shuō)得不對(duì),”菜鳥(niǎo)起飛點(diǎn)“說(shuō)的對(duì)但沒(méi)解釋清楚:1、”為什么一定要求add的必須是course類(lèi)型哇?“ ?答:不是一定!里面可以隨便添加其他類(lèi)型,你可以嘗試添加
public void testAdd() {
Course cr1 = new Course("1", "數(shù)據(jù)結(jié)構(gòu)");
coursesToSelect.add(cr1);
Course temp = (Course) coursesToSelect.get(0);
System.out.println("添加了課程" + temp.id + temp.name);
coursesToSelect.add("我是字符串");
System.out.println(coursesToSelect.get(1));
}
不使用foreach循環(huán)遍歷,而是使用普通打印,你會(huì)發(fā)現(xiàn)字符串已經(jīng)被添加而且被打印出來(lái)了。老師的課程之所以報(bào)錯(cuò),是因?yàn)槔蠋熓褂玫氖?/p>
foreach(Object obj:soursesToSelect){
Course cr = (Couse)obj;// ? ? 報(bào)錯(cuò)是出在了這里,是因?yàn)榇嫒氲腟tring類(lèi)型”我是字符串“不能被強(qiáng)制轉(zhuǎn)換。并不是不能存,而是已經(jīng)存進(jìn)去不能強(qiáng)轉(zhuǎn)罷了。
}
結(jié)論是:add里可以添加其他類(lèi)型。
2016-02-10
謝謝大神們啊↖(^ω^)↗
2016-02-10
2016-01-21
報(bào)錯(cuò)的地方為testForEach方法,當(dāng)我們?cè)诒闅v時(shí),代碼表達(dá)的是將集合中的Object類(lèi)型的元素強(qiáng)轉(zhuǎn)成課程類(lèi)型的元素(因?yàn)槲覀円恢蓖现刑砑拥木褪钦n程類(lèi)型的元素),所以當(dāng)你往集合中添加String類(lèi)的元素,在遍歷時(shí)會(huì)報(bào)錯(cuò)。
2016-01-13
因?yàn)镃ourse本身是個(gè)List類(lèi)型的集合,之前我們操作各種方法的前提是我們定義了一個(gè)course類(lèi),這個(gè)類(lèi)有序號(hào),也有值,我們?cè)谑褂眠@個(gè)集合的時(shí)候規(guī)定了只能采用這種方式來(lái)添加(取出、修改等)集合的元素,因此在當(dāng)前的Course中,它只會(huì)識(shí)別course類(lèi),其他類(lèi)(例如視頻中的String)會(huì)報(bào)錯(cuò)。
如果你在一開(kāi)始course類(lèi)中把它定義成String類(lèi)型,你就可以add String了,但是我們現(xiàn)在操作的是一個(gè)集合,光光String不符合要求,還需要對(duì)應(yīng)的序號(hào)。
一點(diǎn)看法,歡迎討論。