-1

ClassCastException在将 Node 类型的对象转换为 DatanodeDescriptor 时,我得到了一个。当我在调试器中检查对象时,它的类型为 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 回答