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