Java:特殊类型,二进制运算符的操作数类型错误

时间:2018-11-19 00:58:21

标签: java error-handling compiler-errors

我正在用Java开发树。我目前正在研究检索和插入方法。 方法如下:

if(item <= node.item)

在上面的代码中,if语句:

java: bad operand types for binary operator '<='
first type:  E
second type: E

...给我以下错误:

slice(i, i+2)

我有点困惑,因为当我用compareTo()切换操作数时,让我知道结果是布尔值,但我们期望的是int。我不太确定如何比较它们。或更确切地说是将它们进行比较。 SOS!

谢谢你, T

1 个答案:

答案 0 :(得分:1)

让您的老师发自内心的攻击,让我们先修复其通用类型。这个

public class BinarySearchTree<E extends Comparable<E>> extends BinaryTree<E>

应该是

public class BinarySearchTree<E extends Comparable<? super E>> extends BinaryTree<E>

您可以使用Comparable<T>进行比较。也就是说,

if(item <= node.item){

应该是

if (item.compareTo(node.item) <= 0)

以此类推,使用item.compareTo代替<==>