簡體   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