[英]Implementing Iterable vs implementing Iterator
我有一個 object 我想實現自定義迭代,但是:
Iterator
object,因為迭代需要訪問私有字段。 所以我的解決方案是同時實現Iterator
和Iterable
,並在我的實現中包含以下方法:
@Override
public java.util.Iterator iterator() {
return this;
}
這是好的做法嗎? 如果不是,我應該怎么做才能正確解決這個問題?
這是不好的做法。 創建一個輔助Iterator
object,並使該Iterator
成為當前 class 內的嵌套 class ,這將允許它訪問私有字段。
通常,試圖同時使您的 object 成為Iterable
和Iterator
極有可能使用戶感到困惑並破壞對Iterable
工作方式做出假設的代碼,特別是它可以多次使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.