【发布时间】:2013-08-25 21:34:10
【问题描述】:
以下代码不起作用。这段代码有什么问题?编译器在 for 循环中抱怨 NumberList 不是 Iterable 类。
for-each 循环中可以使用什么样的类?如何使NumberList 可迭代?我尝试制作NumberList implement Iterable,但它似乎不起作用,因为我不知道如何正确定义迭代器。
如果有人可以演示如何使此代码工作,或者将我链接到一个很棒的教程。
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 并填写所需的方法即可。
-
还有其他关于SO实现Iterable方法的问题,包括Implementing the Iterable interface。
标签: java