如何构建一个应该存储给定接口元素的链表(Sortable
)?
要构建的接口是:
public interface Sortable<T>
我对列表的实现称为public class DoublyLinkedList
它将数据存储在类public class DoublyLinkedListElement implements Sortable<Object>
到目前为止一切顺利。但是还有另一个班级public class Product implements Sortable<Product>
。
是否可以使用DoublyLinkedList
方法将Product
类型的对象添加到DoublyLinkedList
,而无需将类型转换为DoublyLinkedListElement
。如果我这样做,我收到实际参数产品无法通过方法调用转换转换为DoublyLinkedListElement。
答案 0 :(得分:0)
我不是肯定我理解这个问题,但我认为你需要做的是让你的add方法采用Sortable类型。然后你不必投射任何东西,你就可以添加Product或DoublyLinkedListElement。
DoubleLinkedList<Sortable> list = new DoublyLinkerList<Sortable>();
list.add(new Product());
list.add(new DoublyLinkedListElement());
答案 1 :(得分: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;
}