私は単純なLinkedListクラスを実装しており、ジェネリックを使用したいと考えています。クラス宣言は次のとおりです。Java一般的な形式パラメータ
public class LinkedList<E> extends AbstractList<E> implements List<E> {
これは、教育の一例ですので、抽象親とのインタフェースも私自身です。問題は、ソートを追加して維持するために、私はクラス(E)が必要であることに気がつきました。これもまた比較可能です。私はそれを実際に違いを生む方法に限定できると思った。しかし、以下のコメントに基づいて、それは私の基本的な誤解かもしれません。ここで
コードです:
public void addSorted(<E extends Comparable<E>> value) {
if (front == null || value.compareTo(front.word) <= 0) {
// insert at front of list
front = new ListNode<E>(value, front);
} else {
// insert in middle of list
ListNode<E> current = front;
while (current.next != null && current.next.word.compareTo(value) < 0) {
current = current.next;
}
current.next = new ListNode<E>(value, current.next);
}
}
私が特定のクラスがComparableを実装してE年代に限定されなければならない理由、その後addSortedを呼び出したいことはありません場合はように私には見えましたか?それとも、それを行うための全く別の方法がありますか?
ありがとうございます!
:たとえば
正しい構文。'E'がクラスの型パラメータであれば' public> void addSorted(E value) 'または' public void addSorted(E value) 'のいずれかでなければなりません。もっと情報が必要です。 –
問題を説明していない場合もありません。 – Savior
あなたの質問に答えてください。コンパイルエラーがありますか?そこはありますか?代わりにランタイムエラーがありますか? – Baltasarq