无法在Java中转换Iterable实现中的类型

时间:2014-10-06 10:01:00

标签: java types iterator iterable mismatch

我有错误:

 Type mismatch: cannot convert from element type Object to Card 

使用以下代码:

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

这是我的套牌类中的迭代器方法:

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

套牌的基础结构是Vector<Card>。我的迭代器返回类型Card。为什么它在for循环中告诉我Object

我可以执行以下操作然后错误就会消失,但这非常愚蠢,因为我已经应该返回Card而不是Objects

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

由于

1 个答案:

答案 0 :(得分:3)

为了使Deck上的增强型for循环返回Card个对象,Deck应该实现Iterable<Card>,而不仅仅是Iterable