有人知道解决这个问题的最佳方法吗?
我收到以下错误,我认为这意味着我需要一种不同的方法来比较节点的数据元素。
java: bad operand types for binary operator '<'
first type: V
second type: V
代码:
class Node<V> {
Node<V> left;
Node<V> right;
V data;
public Node(V d) {
left = null;
right = null;
data = d;
}
public void Insert(V d) {
if (data != null) {
if (d < data) {
if (left == null) {
left = Node(d);
} else {
left.Insert(d);
}
}
}
}
}
您收到此错误是因为编译器不知道
V
是否是支持与 <
进行比较的类型。您可以使用 compareTo()
方法来比较泛型类型元素。 查看更多信息。
示例:
public void Insert(V d) {
if (data != null) {
if (d.compareTo(data) < 0) {
if (left == null) {
left = new Node<>(d);
} else {
left.Insert(d);
}
}
}
}