Java 二进制运算符的操作数类型错误

Java 二进制运算符的操作数类型错误,java,generics,Java,Generics,所以我试图使代码通用,我遇到了这个问题,我得到了一个错误,表示二进制运算符的操作数类型错误 以下是一个例子: if(compare(data < root.data)) if(比较(数据

所以我试图使代码通用,我遇到了这个问题,我得到了一个错误,表示二进制运算符的操作数类型错误

以下是一个例子:

if(compare(data < root.data))
if(比较(数据
我得到上面所说的错误。有关于如何修复它的提示吗

我在开始时有以下设置:

class Node<T>
{
   T data;
   Node<T> left, right;

Node(T data)
    {
    this.data = data;
    }
}
类节点
{
T数据;
左、右淋巴结;
节点(T数据)
{
这个数据=数据;
}
}

Java不支持运算符重载,<运算符是为(int,double..)等基本数据类型定义的

它不是为非基本类型或用户定义类型定义的


您应该使用可比较的界面,而不是调用数据,但是操作符
如果(compare(data,root.data)<0)
,这就清除了很多问题。谢谢
data.compareTo(root.data);
data.compareTo(root.data) < 0