0

我正在编写一个双向链表,当添加从我的类“家具”扩展的对象时,使用 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();

    }
}

我的 compareTo 方法位于家具类的子类中,例如:

class Chair extends Furniture
{


[.....]

    public int compareTo(Chair c)
    {
    if(this.getStyle().equals(c.getStyle()))
        return this.getColor().compareToIgnoreCase(c.getColor());
    return this.getStyle().compareToIgnoreCase(c.getStyle());
    }


}

然后我尝试通过

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

我收到错误:类型参数家具不在类型变量 E 内

4

4 回答 4

4

确保Furniture实现Comparable<Furniture>

于 2012-04-11T17:14:19.953 回答
0

您的 Furniture 类应该是抽象的并且应该扩展 Comparable,您的 Chair 类应该实现您的 Furniture 类。

另一种方法是让您的 Furniture 类实现 Comparable。

于 2012-04-11T17:21:08.330 回答
0

也许你的Forniture类没有实现Comparable<Forniture>.

于 2012-04-11T17:16:21.753 回答
0

<E extends Comparable<E>>手段E必须是扩展Comparable<E>的,因此请确保家具扩展了 Comparable。

于 2012-04-11T17:22:54.167 回答