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

多分あなたのFornitureクラスは実装していませんComparable<Forniture>

于 2012-04-11T17:16:21.753 に答える
0

Furniture クラスは抽象的で Comparable を拡張する必要があり、Chair クラスは Furniture クラスを実装する必要があります。

別の方法は、Furniture クラスに Comparable を実装させることです。

于 2012-04-11T17:21:08.330 に答える