Я написал собственный итератор для класса MyList
. Вот как это выглядит:
private class MyListIterator implements Iterator<ListItem> {
// Constructor
public MyListIterator() {
nextElement = head;
}
@Override
public ListItem next() {
...
}
Затем в классе MyList
я создаю новый MyListIterator
, например:
@Override
public Iterator<ListItem> iterator() {
MyListIterator iterator = new MyListIterator();
return iterator;
}
и, наконец, я пытаюсь перебрать объект MyList
, ожидающий ListItem
s:
MyList list = new MyList();
for (ListItem item : list ) {
System.out.println(item.value);
}
Но я получаю ошибку несовместимых типов, потому что итератор возвращает типы Object
вместо ListItem
. Как это исправить?
Редактировать: MyList
реализует MyListInterface
:
public interface MyListInterface<T extends Comparable<T>> extends Iterable<T> {
public Iterator<T> iterator();
}
Но мне не разрешено что-либо менять в MyListInterface
private class ListItem {
Comparable value;
ListItem previous;
ListItem next;
public ListItem(Comparable value) {
this.value = value;
}
}