我在实现默认迭代器时遇到了问题。我的代码看起来像这样:
import java.util.Iterator;
public class ProductIterator implements Iterator<Product> {
private int index = 0;
public boolean hasNext() {
if (index < Product.getAllProducts().size()) {
return true;
} else {
return false;
}
}
public Product next() {
if (hasNext()) {
return Product.getAllProducts().get(index++);
} else {
return null;
}
}
}
文档说:Iterator处理元素E,而next()方法返回E
但是当我在代码中调用它时:
for (Iterator prodIter = getIterator(); prodIter.hasNext();) {
Product product = prodIter.next();
...
}
我遇到了错误:
error: incompatible types: Object cannot be converted to Product
我对此有点困惑,因为shure应该返回Product对象。
有谁知道为什么不是?
解决
将所有原始类型更改为特定帮助 谢谢@Thomas