类型不匹配:无法从Item转换为Item
public class RandomizedQueue implements Iterable { private Item[] s; private int N; public Iterator iterator() { return new RQIterator(); } private class RQIterator implements Iterator { private Item[] copy; private int newItems; public RQIterator() { copy = (Item[]) new Object[N]; for (int i = 0, k = 0; i < s.length; i++) { if (s[i] != null) copy[k++] = s[i]; } newItems = N; } //hasNext(), next(), remove() methods.. } }
在线copy[k++] = s[i]
,我得到错误:类型不匹配:无法从项目转换为项目,但我无法弄清楚什么是错的。 有人能说出来吗? 谢谢!
您的内部类RQIterator
声明一个新的类型参数Item
,它与其封闭类RandomizedQueue
声明的类型参数Item
不同。
但是, RandomizedQueue
的Item
类型参数仍在范围内,因为RQIterator
作为嵌套类不是static
嵌套类。 只需使用RandomizedQueue
Item
。
private class RQIterator implements Iterator- {
另外,在iterator()
创建迭代iterator()
也不需要类型参数。
public Iterator- iterator() { return new RQIterator(); }