实现接口可比较时获取编译错误

时间:2012-04-10 00:45:16

标签: java interface compare

我正在尝试将compareTo方法用于通用节点类型E。

我已将E绑定到Comparable

public class LinkedList<E extends Comparable<E>> {

    //  ----------------------------------------------------------
    //  Implementing the doubly linked nodes (static nested class)
    //  ----------------------------------------------------------

    private static class Node<E extends Comparable<E>> {

此方法isSorted在LinkedList类中实现,Node类在Linkedlist类中。

我一直收到编译错误“对于LinkedList.Node类型,方法compareTo(LinkedList.Node)是未定义的”

我相信只有当E没有扩展Comparable时才弹出,就我的情况而言。 有什么帮助吗?

 public boolean isSorted( ){

        if(!isEmpty()){

        Node<E> temp = head;
        boolean local = true;
        int x=0;
        while (temp.next != null){
          x=temp.compareTo(temp.next);
          if(x<0){
            temp = temp.next;}
          else {return local;}

        }
        return local;}
        else{ throw new IllegalArgumentException();}
      }

我已经检查了这个帖子,How to compare generic nodes in a linked list using Comparable?

没有用。

提前谢谢

Mjall2

1 个答案:

答案 0 :(得分:2)

您正在尝试比较节点,而它只是节点内Comparable的值。而不是temp.compareTo(temp.next),您可能想要temp.value.compareTo(temp.next.value)