0

特定のインターフェイス ( ) の要素を格納するリンク リストを作成する方法はSortable?

構築するインターフェイスは次のとおりです。

public interface Sortable<T>

public class DoublyLinkedList クラスのノードにデータを格納するリストの実装が呼び出されますpublic class DoublyLinkedListElement implements Sortable<Object>

ここまでは順調ですね。ただし、別のクラスがありpublic class Product implements Sortable<Product>ます。

のメソッドを使用して、タイプをに変換せずにDoublyLinkedListタイプのオブジェクトを に追加することは可能ですか? そうしようとすると、メソッド呼び出し conversion によって実引数 Product cannot be convert to DoublyLinkedListElement を受け取りますProductDoublyLinkedListDoublyLinkedListElement

4

2 に答える 2

0

この質問に完全に答えるのをためらっています。しかし、ジェネリックは後天的な好みであるため、次のようなものかもしれません。

public class DoublyLinkedList<T extends Sortable<T>> {
    private Element<T> first;
    private Element<T> last;
}

class Element<T extends Sortable<T>> {
    private T value;
    private Element<T> previous;
    private Element<T> next;
}
于 2012-02-02T23:39:20.743 に答える
0

私は問題を理解しているとは確信していませんが、あなたがする必要があるのは、addメソッドをSortable型にすることだと思います。その後、何もキャストする必要はなく、Product または DoublyLinkedListElement を追加できます。

DoubleLinkedList<Sortable> list = new DoublyLinkerList<Sortable>();
list.add(new Product());
list.add(new DoublyLinkedListElement());
于 2012-02-02T22:48:12.103 に答える