public class MyList<Item> implements Iterable<Item> {
Node<Item> first;
int n = 0;
private static class Node<Item>
{
private Item item;
private Node<Item> next;
}
public Iterator<Item> iterator() {
return new ListIterator<Item>();
}
private class ListIterator<Item> implements Iterator<Item> // parameter Item is hiding the type Item
{
private Node<Item> current = first; // This does not compile
public boolean hasNext() {
return (current != null);
}
public Item next() {
Item item = current.item;
current = current.next;
return current.item;
}
}
...
}
我收到的错误是
"类型不匹配: 无法从MyList.Node转换为MyList.Node"
我不确定这是否与警告有关
"参数Item隐藏了类型item"
如果我为
private class ListIterator<Item> implements Iterator<Item>
获得警告,那么为什么没有为public class MyList<Item> implements Iterable<Item>
获得警告?