Java で一般的なリンク リストの実装を作成しています。コードは
public class LinkedList<T> {
private Node<T> top;
private int no_of_items;
private class Node<T extends Comparable<? super T>> {
T data;
Node<T> next;
}
public LinkedList() {
top = null;
}
public boolean isEmpty() {
return (top == null);
}
public void insert(T item) {
Node<T> node = new Node<T>();
node.data = item;
node.next = top;
if(isEmpty()) {
top = node;
} else {
Node<T> n = top;
while(n.next != null) {
n = n.next;
}
n.next = node;
}
no_of_items++;
}
}
私が欲しいのは、そうあるT
べきですComparable
。このコードのコンパイル中に、ノードを初期化する場所でエラーが発生します。
Bound Mismatch the type T is not a valid substitute for the bounded parameter <T extends Comparable<? super T>> of the type LinkedList<T>.Node<T>
ここで何が問題なのかわかりません。