我正在编写一个双向链表,当添加从我的类“家具”扩展的对象时,使用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内
发布于 2012-04-12 01:14:20
确保Furniture实现了Comparable<Furniture>
发布于 2012-04-12 01:16:22
也许您的Forniture类没有实现Comparable<Forniture>。
发布于 2012-04-12 01:21:08
你的家具类应该是抽象的,并且应该扩展为可比较的,你的椅子类应该实现你的家具类。
另一种方法是使您的家具类实现具有可比性。
https://stackoverflow.com/questions/10110706
复制相似问题