【发布时间】:2019-08-23 00:43:21
【问题描述】:
我正在尝试创建一个迭代器类,它可以迭代我选择的大量对象。我在大学里看到过关于使用 Object 类型的建议(因为它是对象超类),但我不知道该怎么做。
我创建了一个构造函数,它接收参数 Object[] 和元素的数量。但是,当我需要返回该对象时,它不允许我说它是不兼容的类型。
public class IteratorClass implements Iterator {
Object[] objIt;
int elemCounter;
int currNumber = 0;
/**
* Constructor of the Iterador
*/
public IteratorClass(Object[] objIt, int elemCounter) {
this.elemCounter = elemCounter;
this.objIt = objIt;
}
public Object next() {
return objIt[currNumber++];
}
}
我希望它返回我放入构造函数的类型的对象,但它不允许我这样做。
【问题讨论】:
-
开始使用java 1.5及以上,它有泛型。无需重新发明轮子。
-
请注意,Java 1.5 现在已经 15 岁了。
-
另外,请注意
Arrays.asList(yourArray).iterator()可以用更少的代码为您提供一个功能正常的迭代器。 -
@AndyTurner,我认为这应该是一个学习练习,所以任务是尝试重新发明轮子。
-
@TiagoMirais,请解释这是什么意思:“它不允许我说它是不兼容的类型”。你在哪里得到这个错误?您的
IteratorClass是否无法编译,或者您尝试使用其next()函数的代码?
标签: java arrays object iterator