这是我的一个类中的嵌套类。如何从名为remove
的新方法调用public Cards dealOut()
方法?它是否必须在嵌套类中,或者是否有办法在它之外进行?
public class D_iterator <Cards> implements Iterator <Cards> {
int pos = 0;
@Override
public boolean hasNext() {
if (pos < deckOfCards.size()) {
return true;
}
return false;
}
@Override
public Cards next() {
return (Cards) deckOfCards.get(pos+1);
}
@Override
public void remove (){
deckOfCards.remove(pos);
}
}
答案 0 :(得分:0)
通常的范例是让包含D_iterator
的类实现Iterable<Cards>
,这意味着它将有iterator()
方法返回D_iterator
的实例。
该外部类的用户将调用iterator()
来获取Iterator并调用其方法。
P.S。您应该修复next()
方法,因为您永远不会增加pos
。它将始终返回deckOfCards.get(1)
。
答案 1 :(得分:0)
内部remove()
方法不是静态的(并且不能出于各种原因),因此您需要一个对象引用才能调用它。您应该将“删除逻辑”移动到外部类并从迭代器中调用它。