我在向DatanodeDescriptor投射Node类型的对象时得到了ClassCastException
。
当我在调试器中检查对象时,它的类型为DatanodeDescriptor并包含有效数据。可能是什么问题?
Node n = null;
...
...
n = innerNode.getLeaf(index, null);
DatanodeDescriptor d = (DatanodeDescriptor)n;
编辑:我添加了一行来检查
if (n instanceof DatanodeDescriptor)System.out.println("It is")
并在它发出异常之前成功打印
答案 0 :(得分:1)
innerNode.getLeaf不返回DatanodeDescriptor,或者Node实际上不是DatanodeDescriptor。
答案 1 :(得分:0)
该类的名称由包完整确定。你确定DatanodeDescriptor真的是同一个类吗?您可以考虑使用接口来铸造类名的insgtread。
调低它,即
my.node.Node;
other.node.Node;
Node nd = (Node)other;