0

如何建立一个链表来存储给定接口(Sortable)的元素?

要构建的接口是:

public interface Sortable<T>

我的列表实现被称为public class DoublyLinkedList 将数据存储在类的节点中public class DoublyLinkedListElement implements Sortable<Object>

到目前为止,一切都很好。然而,还有另一个类public class Product implements Sortable<Product>

是否可以使用方法DoublyLinkedList将类型的对象添加Product到 aDoublyLinkedList而无需将类型转换为DoublyLinkedListElement. 如果我尝试这样做,我会收到实际参数 Product cannot be convert to DoublyLinkedListElement by method invocation conversion

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 方法采用可排序类型。然后,您不必强制转换任何内容,您就可以添加 Product 或 DoublyLinkedListElement。

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