在过去的 3 个小时里一直试图找到一个直接的答案/解决方案,但没有运气,希望你们能提供帮助:
我有以下类使用二叉搜索树实现间隔树:
public class Node<T extends Comparable<T>> implements Comparable<Node<T>> {...}
public class BinarySearchTree<T extends Comparable<T>> {
protected Node<T> root;
...}
public class IntervalNode extends Node<Interval> {...}
public class IntervalTree extends BinarySearchTree<Interval> {...}
当我尝试对 IntervalTree 实例的根成员进行以下强制转换时,我得到一个 ClassCastException:
IntervalNode CurrentNode = (IntervalNode)root; //root being of type Node<Interval>
which IntervalNode extends.
我对 java 还很陌生,但从我读过和搜索过的内容来看,这种向下转换应该是可能的,所以我对这个异常的原因有点迷茫。到目前为止,我最好的猜测是这是由类型擦除引起的,但我无法找到关于此事的直接答案。关于此异常的原因或更好的解决方法的任何想法?