2012-02-02 83 views
0

如何构建应存储给定接口的元素的链接列表(Sortable)?基于同一接口实现的类型之间的转换

的基础上的接口是:

public interface Sortable<T> 

我的列表implemementation被称为public class DoublyLinkedList 这在类public class DoublyLinkedListElement implements Sortable<Object>

到目前为止好节点存储数据。不过还有另外一类public class Product implements Sortable<Product>

是否可以使用DoublyLinkedList的方法将Product类型的对象添加到DoublyLinkedList而无需将类型转换为DoublyLinkedListElement。如果我尝试这样我收到实际参数产品不能通过方法调用转换转换为DoublyLinkedListElement。

+1

为什么你的类实现了接口Sotrable ,如果它应该只存储它的元素呢? – 2012-02-02 22:29:21

+0

这是作业。 DoublyLinkedList的方法签名给出 – 2012-02-02 22:34:18

+0

是由您创建的接口还是部分赋值描述? Sortable中声明的方法是什么? – ggreiner 2012-02-02 22:35:05

回答

0

我不积极我明白这个问题,但我认为你需要做的是让你的添加方法采取类型可排序。然后你不需要施放任何东西,你就可以添加Product或DoublyLinkedListElement。

DoubleLinkedList<Sortable> list = new DoublyLinkerList<Sortable>(); 
list.add(new Product()); 
list.add(new DoublyLinkedListElement()); 
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; 
} 
相关问题