繁体   English   中英

实现 Iterable 与实现 Iterator

[英]Implementing Iterable vs implementing Iterator

我有一个 object 我想实现自定义迭代,但是:

  • 我不想一次创建所有的下一个模式。
  • 我希望它在增强的 for 循环中工作,但我不想为所有实际迭代创建辅助Iterator object,因为迭代需要访问私有字段。
  • 我想要求制作第二个 object 而不是制作第二个迭代器。

所以我的解决方案是同时实现IteratorIterable ,并在我的实现中包含以下方法:

@Override
public java.util.Iterator iterator() {
    return this;
}

这是好的做法吗? 如果不是,我应该怎么做才能正确解决这个问题?

这是不好的做法。 创建一个辅助Iterator object,并使该Iterator成为当前 class 内的嵌套 class ,这将允许它访问私有字段。

通常,试图同时使您的 object 成为IterableIterator极有可能使用户感到困惑并破坏对Iterable工作方式做出假设的代码,特别是它可以多次使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM