私はこの未確認の割り当て: 'するjava.util.Iterator <java.lang.Integerの>' から '匿名java.util.Iteratorの'
public class Symbol implements Iterable<Integer> {
private int n = 123;
public Iterator<Integer> iterator() {
return new Iterator() {
int counter = 0;
@Override
public boolean hasNext() {return counter < n;}
@Override
public Integer next() {return counter++;}
@Override
public void remove() { throw new UnsupportedOperationException(); }
};
}
のようなクラスを持って、私は次の警告
を取得Unchecked assignment: 'anonymous java.util.Iterator' to 'java.util.Iterator<java.lang.Integer>'
私は警告を無視するか、forループをarraylistに書き込んでリストのイテレータを返すことができますが、私はそれを怠惰にしたいと思います。
public Iterator<Integer> iterator() {
return new Iti();
}
private class Iti implements Iterator<Integer>{
final int N = n;
int counter = 0;
@Override
public boolean hasNext() {return counter < N; }
@Override
public Integer next() {return counter++;}
@Override
public void remove() { throw new UnsupportedOperationException(); }
}
ただ、 '新しいイテレータ' –
Oleg
'' <...> 'なしIterator'が生タイプであり、あなたがジェネリック型と生タイプを混在させることはできませんが返されます。 –