使用泛型后,用迭代器遍歷集合元素的問(wèn)題
看了其他兩個(gè)類似問(wèn)題的回答,覺(jué)得不滿意。在導(dǎo)包正確的前提下,使用迭代器遍歷集合元素可以如下圖所示:
但是也可以如下:
Iterator<Course>?it?=?courses.iterator(); ????while(it.hasNext()){ Course?c?=?it.next(); System.out.println(c.id?+?":"?+?c.name); ????}
個(gè)人一開(kāi)始覺(jué)得it.next()返回的就是Course對(duì)象,也就是集合中的元素,其類型肯定是Course類型了,所以為何還要在圖里面進(jìn)行類型轉(zhuǎn)換?
第二種是看到了其他提問(wèn)里想到的,原來(lái)迭代器還可以指定類型,就像集合的泛型似的,那么接下來(lái)就不用類型轉(zhuǎn)換了。也許這里缺少的是迭代器的知識(shí)。
2017-11-12
在未類型轉(zhuǎn)換時(shí),報(bào)錯(cuò)是:Type mismatch: cannot convert from Object to Course??磥?lái)迭代器返回的是Object類型,就好像放入集合中的元素被轉(zhuǎn)變成(是轉(zhuǎn)變)Object類型一樣。