【问题标题】:How to make an Iterator that can Iterate many types of objects如何制作一个可以迭代多种类型对象的迭代器
【发布时间】: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


【解决方案1】:

这不起作用的原因是我在这个类中实现的接口有方法 next() 返回一个不同于 Object 类型的对象。

【讨论】:

  • 考虑接受答案(左侧的复选标记),以便此问题不会出现在未回答问题列表中。
猜你喜欢
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-19
  • 1970-01-01
  • 2021-01-01
  • 2023-03-07
  • 1970-01-01
相关资源
最近更新 更多