gpt4 book ai didi

java - 错误 。运算符 < 不能应用

转载 作者:行者123 更新时间:2023-11-29 07:00:33 25 4
gpt4 key购买 nike

第 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(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;
}
}
}

最佳答案

要比较非数字类型,您需要实现 Comparable在那个类型上使用 temp.key.compareTo(temp.next.key) < 0相反。

如果您使用的是 LinkedList<? extends Number> , 由于 type erasure 不适用.但是,如果您指定一个具体实现来包装 < 到的原语运算符适用(参见 autoboxing ),例如 LinkedList<Integer> , 那么有可能因为 Integer指定为界限,Integer包裹 int , 和 <运算符适用于 int .

在您的情况下,由于您使用的是原始类型,因此界限是 java.lang.Object , <运算符不适用。就像我们这些正在阅读您的问题的人一样,我们无法判断 LinkedList 是否存在。属于 < 的类型可以应用。

通常应避免使用原始类型,因为它们有效地剥夺了泛型的值(value)。

关于java - 错误 。运算符 < 不能应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26890817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com