私は外部クラスDoublyLinkedList<T>
と2つの内部クラスDoublyLinkedNode<T>
とDoublyLinkedListIterator<T>
を持っています。今同じタイプへのキャストを追加
public class DoublyLinkedList<T> extends Collection<T> {
private DoublyLinkedNode<T> head;
private DoublyLinkedNode<T> tail;
public class DoublyLinkedNode<T> {
private DoublyLinkedNode<T> prev;
private DoublyLinkedNode<T> next;
T element;
}
public class DoublyLinkedListIterator<T> implements ListIterator<T> {
private DoublyLinkedNode<T> current = head;
}
}
私は私はあなたが持っているので、それは容易になるだろうと思った、stackoverflowの中に複数のページやイテレータはDoublyLinkedList<T>
のように対応する反復可能なクラスで実装する必要があることを他のソースに読み/聞いたので、次のように彼らが配置されています外部クラスフィールドへのアクセス。今私はDoublyLinkedListIterator<T>
のインスタンスを初期化したいのですが、Eclipseは、この時点でこう述べています。DoublyLinkedListにDoublyLinkedList.DoublyLinkedNode < T>から変換することはできません。
型の不一致:
DoublyLinkedListIterator<T>
内部private DoublyLinkedNode<T> current = head;
。 DoublyLinkedNode < T>
そして、これを解決する唯一の方法は、再び同じタイプでそれをキャストすることによってである:
private DoublyLinkedNode<T> current = (DoublyLinkedNode<T>) head;
なぜそうですか?
DoublyLinkedListIterator 'ので、 '' ListIterator'を実装している場合、 'DoublyLinkedList'に' Collection'の上に 'List'を実装させることをお勧めします。 – Izruo