Ich versuchte binarysearchtree (Add-Methode) mit Generika zu implementieren, aber es gibt mir diese Art von Fehler:Operand Typen Fehler
genericstree.java:36: error: bad operand types for binary operator '>'
if (value > iterator.m_Value)
^
first type: T
second type: T
where T is a type-variable:
T extends Comparable<T> declared in class BinarySearchTree
genericstree.java:42: error: bad operand types for binary operator '<'
if (value < prev.m_Value)
^
first type: T
second type: T
where T is a type-variable:
T extends Comparable<T> declared in class BinarySearchTree
2 errors
-Code unten:
class BinarySearchTree<T extends Comparable<T>>
{
class Node<T extends Comparable<T>>
{
Node<T> left;
Node<T> right;
T m_Value;
Node(T value)
{
left = null;
right = null;
m_Value = value;
}
}
Node<T> m_Root;
BinarySearchTree() { m_Root = null; }
void addNode(T value)
{
Node<T> tmp = new Node<T>(value);
if (m_Root == null)
{
tmp.m_Value = value;
m_Root = tmp;
return;
}
Node<T> iterator = m_Root;
Node<T> prev = m_Root;
while (iterator != null)
{
prev = iterator;
if (value > iterator.m_Value)
iterator = iterator.right;
else
iterator = iterator.left;
}
if (value < prev.m_Value)
prev.left = tmp;
else
prev.right = tmp;
}
}
ich das Problem, dachte, dass ersetzt wurde T-Objekt könnte von jedem Typ, dann könnte es nicht vergleichen, aber ich habe die Klasse mit Comparable erweitert, aber es hat es nicht behoben.
Was verursacht das Problem und wie behebe ich es?
Wusste nicht ersetzen. Danke für die Antwort, die das Problem behoben hat. – kvway