我想創建自己的迭代器,並在foreach循環中使用它。但得到一個錯誤,該對象無法從對象轉換爲整數。 這段代碼的目的是理解迭代器接口。爲什麼這個迭代器不能在foreach循環中工作?
package com.java.collections;
import java.util.Iterator;
public class Counter implements Iterable {
int count;
Counter(int count){
this.count = count;
}
@Override
public Iterator iterator() {
// TODO Auto-generated method stub
return new Iterator<Integer>() {
private int i = 0;
@Override
public boolean hasNext() {
// TODO Auto-generated method stub
return i < count;
}
@Override
public Integer next() {
// TODO Auto-generated method stub
i++;
return i;
}
@Override
public void remove() {
// TODO Auto-generated method stub
}
};
}
}
package com.java.collections;
public class TestCounter {
public static void main(String[] args) {
new TestCounter().test();
}
void test() {
for(Integer i : new Counter(5))
{
}
}
}
做到了這一點,出現錯誤爲「類型不匹配:無法從元素類型Iterable轉換爲Integer」 – anirban
您很可能試圖在next()方法中返回Iterator而不是Integer。 –
是的傑夫,對不起,我輸入公共類計數器匆忙地實現了Iterable。把它改回Integer。它的工作。謝謝 –
anirban