所以我得到这个ClassCastException
当尝试转换我的Node<T>
时给我的AVLNode<T>
。不知道为什么。
这里是抛出异常的地方。
Node<Integer> n1 = new Node<Integer>(3, null);
AVLNode<Integer> n2 = (AVLNode<Integer>) n1;
类(class)看起来如何...
public class Node<T extends Comparable<T>> {
public Node<T> right;
public Node<T> left;
public Node<T> parent;
public T data;
public Node(T data, Node<T> parent) {
this.data = data;
this.parent = parent;
} // ...
另一个类在单独的文件中:
public class AVLNode<T extends Comparable<T>> extends Node<T> {
public int height = 1;
public AVLNode(T data, Node<T> parent) {
super(data, parent);
} //...
错误信息: 线程“main”中的异常 java.lang.ClassCastException:custom.trees.Node 无法转换为 custom.trees.AVLNode
最佳答案
基本上,因为 Node
不是 AVLNode
- 您将其创建为 Node
,所以它是一个 Node
>。如果您将其创建为 AVLNode
,则可以将其转换为 Node
,但反之则不然。
关于java - Actor 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26676244/