Java 基于同一接口的实现在类型之间转换

Java 基于同一接口的实现在类型之间转换,java,interface,implements,Java,Interface,Implements,如何构建一个链表来存储给定接口的元素(Sortable) 要构建的接口是: public interface Sortable<T> 公共接口可排序 我的列表实现称为公共类双链接列表 它将数据存储在类公共类doublylinkedLiselement的节点中,实现了可排序 到目前为止还不错。但是,还有另一个类公共类产品实现了可排序的 是否可以使用双链接列表的方法将产品类型的对象添加到双链接列表,而无需将类型转换为双链接列表。如果我尝试这样做,我收到的实际参数产品无法通过方法调用转

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

要构建的接口是:

public interface Sortable<T>
公共接口可排序
我的列表实现称为
公共类双链接列表
它将数据存储在类
公共类doublylinkedLiselement的节点中,实现了可排序

到目前为止还不错。但是,还有另一个类
公共类产品实现了可排序的


是否可以使用
双链接列表
的方法将
产品
类型的对象添加到
双链接列表
,而无需将类型转换为
双链接列表
。如果我尝试这样做,我收到的实际参数产品无法通过方法调用转换转换为DoublyLinkedListElement。

我不确定我理解这个问题,但我认为您需要做的是使add方法的类型可排序。然后,您不必强制转换任何内容,就可以添加Product或DoublyLinkedListElement

DoubleLinkedList<Sortable> list = new DoublyLinkerList<Sortable>();
list.add(new Product());
list.add(new DoublyLinkedListElement());
DoubleLinkedList=new-doublyLinkedList();
列表.添加(新产品());
添加(新的DoublyLinkedListElement());

我对完整回答这个问题犹豫不决;但由于仿制药是一种后天获得的口味,可能类似于:

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;
}
公共类双链接列表{
私人因素优先;
最后是私人因素;
}
类元素{
私人T值;
私人因素;
其次是私人因素;
}

如果你的类只存储接口的元素,为什么要实现接口Sotrable?这是你的家庭作业。DoublyLinkedList的方法签名是作为您创建的接口提供的,还是分配描述的一部分?Sortable中声明的方法是什么?@mritz\p,方法签名不是整个类。请用这些信息详细说明你的问题。尤其是什么产品。缺乏这些信息会让你很难知道你在处理什么。