我有一个要实现自定义迭代的对象,但是:
Iterator对象,因为迭代需要访问一个私有字段。因此,我的解决方案是同时实现Iterator和Iterable,并在实现中包括以下方法:
@Override
public java.util.Iterator iterator() {
return this;
}这样可以练习吗?如果不是,我应该做些什么来正确地解决这个问题呢?
发布于 2019-09-24 00:53:34
这是不行的练习。创建一个辅助Iterator对象,并使该Iterator成为当前类中的嵌套类,这将允许它访问私有字段。
通常,尝试同时使对象成为Iterable和Iterator非常可能会混淆用户,破坏对Iterable工作方式做出假设的代码,特别是可以不止一次使用它。
https://stackoverflow.com/questions/58071693
复制相似问题