過去 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にかなり慣れていませんが、私が読んでグーグルで検索したことから、このダウンキャストが可能であるはずなので、この例外の原因についてはちょっと迷っています。これまでのところ、これは型の消去が原因であると推測していますが、この問題に関する直接的な答えを見つけることができませんでした。この例外の原因、または回避策についてのアイデアはありますか?