我正在编写一个双向链表,当我添加从我的类“Furniture”扩展的对象时,使用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方法位于我的Furniture类的子类中,例如:
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>();
我收到错误:类型参数furniture不在类型变量E
中答案 0 :(得分:4)
确保Furniture
实施Comparable<Furniture>
答案 1 :(得分:0)
也许您的Forniture
课程没有实施Comparable<Forniture>
。
答案 2 :(得分:0)
您的Furniture类应该是抽象的并且应该扩展Comparable,您的Chair类应该实现您的Furniture类。
另一种方法是让您的Furniture类实现Comparable。
答案 3 :(得分:0)
<E extends Comparable<E>>
表示E
必须延长Comparable<E>
,因此请确保Furniture扩展了Comparable。