Java 错误运算符
第11行有一个错误Java 错误运算符,java,generics,compiler-errors,Java,Generics,Compiler Errors,第11行有一个错误 operator < cannot be applied to java.lang.Object,java.lang.Object 我不太明白这一点,但我对Java中的泛型还是比较陌生的。请容忍我 public void sortbykey() { LinkedList temp = new LinkedList(); LinkedList third = new LinkedList(); temp=head; if(te
operator < cannot be applied to java.lang.Object,java.lang.Object
我不太明白这一点,但我对Java中的泛型还是比较陌生的。请容忍我
public void sortbykey()
{
LinkedList temp = new LinkedList();
LinkedList third = new LinkedList();
temp=head;
if(temp!=null)
{
while(temp.next!=null)
{
if (temp.key < temp.next.key)
{
third.item = temp.key;
temp.key = temp.next.key;
temp.next.key = third.item;
}
else
temp = temp.next;
}
}
}
简单地说,这个操作符可以应用于数值类型,如int、byte、double、float等,以及它们的装箱类,如Integer、byte等 它不能与泛型结合使用,因为编译器不知道操作数的确切类型。在使用泛型时,这些类型是在类型擦除发生后的运行时设置的 一个可能的解决方案是使key属性的类实现可比较的接口,然后您将能够将其与以下内容进行比较:
temp.key.compareTo(temp.next.key) > 0
简单地说,这个操作符可以应用于数值类型,如int、byte、double、float等,以及它们的装箱类,如Integer、byte等 它不能与泛型结合使用,因为编译器不知道操作数的确切类型。在使用泛型时,这些类型是在类型擦除发生后的运行时设置的 一个可能的解决方案是使key属性的类实现可比较的接口,然后您将能够将其与以下内容进行比较:
temp.key.compareTo(temp.next.key) > 0
要比较非数字类型,您需要在该类型上实现Compariable,并改用temp.key.comparietoTemp.next.key<0
如果使用LinkedList比较非数字类型,则需要在该类型上实现Comparable,并改用temp.key.compareTotemp.next.key<0
如果您使用的是LinkedList,我无法确定,因为您尚未发布节点和LinkedList的数据结构,但看起来您在“key”中存储的内容不是java原语,因此您无法使用“,我无法确定,因为您未发布节点和LinkedList的数据结构,但是看起来你在“key”中存储的东西不是java原语,所以你不能使用“你知道对象的不能与LinkedList temp中使用的LinkedList进行比较吗?”?这似乎是您自己的类型,因为标准的一个没有关键字段。无论如何,看起来这个字段是Object类型的,并将对象与进行比较。您是否理解不能将对象与LinkedList temp中使用的LinkedList进行比较?这似乎是您自己的类型,因为标准的一个没有关键字段。无论如何,看起来这个字段是Object类型的,并将对象与