У меня есть следующий дизайн:
У меня есть абстрактный класс Instance
,
У меня есть класс Library
, который расширяет Instance
и
У меня есть класс File
, который также расширяет экземпляр
Я создал собственную реализацию связанного списка, и она определяется следующим образом:
public class List<T extends Instance> implements Iterable {
//some other code here
public Iterator iterator(){
return new ListIterator(this);
}
теперь я создал класс
public class ListIterator<T extends Instance> implements Iterator<T> {
private List thisList;
private Node current;
public ListIterator(List l){
thisList=l;
current=thisList.head.next;
}
@Override
public boolean hasNext() {
if(current==null)
return false;
return false;
}
@Override
public T next() {
Node temp=current;
current=current.next;
return temp.data;
}
}
Где Node
равно
public class Node<T extends Instance> {
public Node<T> next;
public Node<T> prev;
public T data;
public Node(T data,Node prev, Node next){
this.data=data;
this.prev=prev;
this.next=next;
}
}
поэтому моя проблема заключается в следующем: строка return temp.data вызывает ошибку:
Несоответствие типов - невозможно преобразовать из экземпляра в T.
Что не так с этим кодом?