Я объявил BinaryTree как показано ниже:
public class BinaryTree<T extends Comparable<T>> {}
Но когда я звоню
Character[] actual = binaryTreeChar.preOrderTraversal(root, Character[].class);
, это вызывает исключение, как показано ниже.
java.lang.ClassCastException: [[Ljava.lang.Character;не может быть приведен к [Ljava.lang.Comparable;
Есть ли лучший способ решить эти дела?
public T[] preOrderTraversal(BinaryNode<T> root, Class<T[]> clazz) {
if (root == null)
return null;
T[] array = (T[]) Array.newInstance(clazz, count);
Stack<BinaryNode<T>> stack = new Stack<>();
stack.push(root);
int i = 0;
while (!stack.empty()) {
BinaryNode<T> next = stack.pop();
array[i++] = next.data;
if (next.right != null)
stack.push(next.right);
if (next.left != null)
stack.push(next.left);
}
return array;
}
}