Конечно - вы просто не можете применить оператор >
между объектами. Что бы вы ожидали от этого? Вы также не можете применить другие бинарные операторы - +
, -
, /
и т. Д. (За исключением конкатенации строк).
В идеале вы должны сделать свой TreeNode
универсальный , и либо иметь Comparator<T>
, который может сравнивать любые два экземпляра, либо сделать T extend Comparable<T>
. В любом случае, вы можете сравнить их с:
int comparisonResult = comparator.compare(current.getValue(), t.getValue());
if (comparisonResult > 0) {
// current "greater than" t
} else if (comparisonResult < 0) {
// current "less than" t
} else {
// Equal
}
или
int comparisonResult = current.getValue().compareTo(t.getValue());
// Code as before
Без дженериков вы могли бы привести значения к Comparable
или по-прежнему использовать общий Comparator
... но дженерики были бы лучшей ставкой.