я следующая конструкция: У меня есть абстрактный класс Instance
, У меня есть класс, который расширяет Library
Instance
и У меня есть класс File
, что также расширяет Instanceреализация Generic итератора в Java
я создал моя собственная реализация связного списка, и она определяется следующим образом:
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;
}
}
так что моя проблема заключается в следующем: обратная линия temp.data поднимается ошибка:
Type mismatch - cannot convert from Instance to T.
Что не так с этим кодом?
Будет легче выяснить, что происходит, если вы публикуете код класса Node. Также ... это не ... _homework_, не так ли? –
это не домашнее задание, почему? – mary
Потому что (1) если это не домашнее задание (или, по крайней мере, частное исследование), то, вероятно, это плохая идея для реализации списка самостоятельно, и (2) если это было для домашней работы, мы должны помочь вам узнать об ошибке, вместо того, чтобы давать вам ответ в банке. –