【发布时间】:2017-04-11 04:59:04
【问题描述】:
我正在尝试为 ArrayList 类型编写一个迭代器,其中 Number 是一个类。
我可以几乎做到,但我得到了错误:
这是类定义
public class History implements Iterable<ArrayList<Number>> {
这是我希望迭代的类型的定义:
private ArrayList<Number> spins = new ArrayList<Number>();
...这里是迭代器函数:
@Override
public Iterator<ArrayList<Number>> iterator() {
Iterator<ArrayList<Number>> it = new Iterator<ArrayList<Number>>() {
private int currentIndex = 0;
@Override
public boolean hasNext() {
return currentIndex < gethistorySize() && spins.get(currentIndex) != null;
}
@Override
public ArrayList<Number> next() {
return spins.get(currentIndex++); // ** ERROR **
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
};
return it;
}
我在标记为 ** ERROR ** 的行处收到错误
我得到的错误是:
此行有多个标记 - 表达式的类型必须是数组类型,但它解析为 ArrayLisy - 类型不匹配:无法从 Number 转换为 ArrayList
我不太确定在这里返回什么。
有人可以帮忙吗?
谢谢
【问题讨论】:
-
这一行有多个标记 - 表达式的类型必须是数组类型,但它解析为 ArrayLisy
类型不匹配:无法从 Number 转换为 ArrayList -
您能否添加错误消息,以便有相同问题的人能够找到您的问题和可能的答案?
-
已完成,抱歉 - 而且,请注意,这不是运行时错误,而是“屏幕错误”,因此无法执行