2014-10-06 31 views
1

我有錯誤:無法轉換類型的Iterable實現在Java中

Type mismatch: cannot convert from element type Object to Card 

用下面的代碼:

Deck Removal 
.... 
for (Card c : Removal) 
     d.removeCard(c); 

這是我的甲板類iterator方法:

@Override 
public Iterator<Card> iterator() 
{ 
    return deck.iterator(); 
} 

甲板的底層結構是Vector<Card>。我的迭代器返回類型Card。爲什麼它在for循環中告訴我它是Object

我可以做以下事情,然後錯誤會消失,但這很愚蠢,因爲我已經應該返回Card s而不是Objects

Deck Removal 
.... 
for (Object c : Removal) 
     d.removeCard((Card)c); 

感謝

+3

Deck是否實現'Iterable'或'Iterable '? – Eran 2014-10-06 10:02:59

+0

謝謝,趕上,它是固定的 – 2014-10-06 10:03:56

+0

太棒了!在那種情況下,我會寫我的評論作爲答案。 – Eran 2014-10-06 10:05:59

回答

3

爲了增強的for循環在Deck返回,而不是僅僅IterableCard對象,Deck應該實現Iterable<Card>