-1

Node タイプのオブジェクトをClassCastExceptionDatanodeDescriptor にキャストすると、エラーが発生しました。デバッガーでオブジェクトを調べると、DatanodeDescriptor 型であり、有効なデータが含まれています。何が問題なのですか?

Node n = null;
...
...
n = innerNode.getLeaf(index, null);
DatanodeDescriptor d = (DatanodeDescriptor)n;

編集:チェックする行を追加しました

if (n instanceof DatanodeDescriptor)System.out.println("It is")

例外が発生する前に正常に印刷されました

4

2 に答える 2

1

innerNode.getLeaf が DatanodeDescriptor を返さないか、Node が実際には DatanodeDescriptor ではありません。

于 2013-05-01T17:39:31.330 に答える
0

クラスの名前は、パッケージによって完全に決定されます。DatanodeDescriptor が本当に同じクラスであると確信していますか? クラス名の insgtread をキャストするためにインターフェースを使用することを検討してください。

それを不当にするために、すなわち

my.node.Node;
other.node.Node;

Node nd = (Node)other; 
于 2013-05-01T17:40:02.833 に答える