我想要一个泛型类实现Iterable(我们称之为ImplIterable)类型T,它实现了一个类(不是泛型类型)的Iterable接口;例如:泛型类实现Iterable
public class ImplIterable <T> implements Iterable<A> {
private A[] tab;
public Iterator<A> iterator() {
return new ImplIterator();
}
// doesn't work - but compiles correctly.
private class ImplIterator implements Iterator<A> {
public boolean hasNext() { return true; }
public A next() { return null; }
public void remove() {}
}
}
其中A是某个类。现在,这个代码将不能编译:
ImplIterable iable = new ImplIterable();
for (A a : iable) {
a.aStuff();
}
但这会:
Iterable<A> = new ImplIterable();
for (A a : iable) {
a.aStuff();
}
我不明白为什么后者不编译,为什么我不能遍历ImplIterable如果正确地实现迭代。我做错了什么?有没有解决这类问题的方法?
它给了什么错误? – SLaks 2011-03-18 20:08:36
'不兼容的类型 found:java.lang.Object required:java.lang.String' – SLaks 2011-03-18 20:12:52