我有错误:
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
.为什么它告诉我它是 Object
在 for 循环中?
我可以执行以下操作,然后错误就会消失,但这很愚蠢,因为我已经应该返回 Card
s 而不是 Objects
.
Deck Removal
....
for (Object c : Removal)
d.removeCard((Card)c);
谢谢
最佳答案
为了在 Deck
上增强 for 循环返回 Card
对象,Deck
应该实现 Iterable<Card>
, 而不仅仅是 Iterable
.
关于java - 无法在 Java 中的 Iterable 实现中转换类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26213908/