Java 实现可与通用双链表进行比较

Java 实现可与通用双链表进行比较,java,list,generics,Java,List,Generics,我正在编写一个双链接列表,当添加从类“家具”扩展的对象时,使用compareTo方法对它们进行排序 我的列表和节点代码: class Node<E extends Comparable<E>> { ....... } class DList<E extends Comparable<E>> { [..] public void add(E c) { Node<E> finger = head;

我正在编写一个双链接列表,当添加从类“家具”扩展的对象时,使用compareTo方法对它们进行排序

我的列表和节点代码:

class Node<E extends Comparable<E>> { ....... }


class DList<E extends Comparable<E>>
{

[..]

    public void add(E c)
    {
        Node<E> finger = head;
        while (finger != null && ((finger.value().compareTo(c)) > 0))
            finger = finger.Next();

    }
}
然后我试着把我的清单列出来

    DList<Furniture> DD = new DList<Furniture>();
dlistdd=newdlist();

我收到了错误:类型参数furniture不在类型变量E中

确保
furniture
实现
可比

确保
furniture
实现
可比

可能您的
Forniture
类没有实现
可比
可能您的
Forniture
类不实现
compariable

您的家具类应该是抽象的,应该扩展为compariable,您的椅子类应该实现您的家具类


另一种方法是使您的家具类实现可比性。

您的家具类应该是抽象的,并且应该扩展为可比的,您的椅子类应该实现您的家具类


另一种方法是使家具类实现可比较。

意味着
E
必须扩展
可比较
,因此确保家具扩展可比较。

意味着
E
必须扩展
可比较
,因此,请确保家具延伸可比。

椅子
需要实现
int compareTo(家具f)
匹配。否,如果Furniture实现了Comparable,那么类已经有了compareTo方法,Chair类将继承这个compareTo方法。实际上,
Chair
需要实现
Comparable
,但前提是他需要实例化
DList
是,但这里不是这样,由于op希望创建家具的数据列表。而
椅子
需要实现
int compareTo(家具f)
匹配。否,如果Furniture实现了Comparable,那么类已经有了compareTo方法,Chair类将继承这个compareTo方法。实际上,
Chair
需要实现
Comparable
,但前提是他需要实例化
DList
是,但这里不是这样,因为op想要创建一个家具的数据列表。要获得最佳结果,请使用
p.s.要获得最佳结果,请使用

    DList<Furniture> DD = new DList<Furniture>();