以下代码不起作用。这段代码有什么问题?编译器在for循环中抱怨NumberList
不是Iterable
类。for-each循环只能遍历数组或java.lang.Iterable的实例
什么样的类可以用于for-each循环?如何使NumberList
可迭代?我试着制作NumberList implement Iterable
,但它似乎不工作,因为我不知道如何正确定义Iterator。
如果有人能演示如何使这段代码工作,或者将我链接到一个很棒的教程。
public class Test{
public class NumberList{
private int numItems;
private Number[] numbers;
public NumberList(int size){
this.numbers = new Number[size];
this.numItems=0;
}
public void add(Number n){
this.numbers[this.numItems++]=n;
}
}
public void printPairs() {
ArrayList<Integer> num=new ArrayList<Integer>();
NumberList numbers = new NumberList(50);
numbers.add(4);
numbers.add(5);
numbers.add(6);
for(Number n1: numbers){
System.out.println(n1);
}
}
}
为什么你定义自己的列表,而不是使用一个ArrayList? –
首先,肯定使用JDK附带的列表。正如前面的评论者所说,没有用来定义你自己的。但是如果你想修复你的代码,编译器给了你答案。只需实现Iterable并填写所需的方法。 –
还有其他关于如何实现Iterable的问题,包括[实现Iterable接口](http://stackoverflow.com/questions/6050379/implementing-the-iterable-interface)。 –