我创建了一个对象数组:
Object[] r = new Object[2];
我将一个类的变量分配给r:
r[0] = Start;
Start的类型为SDTNode
,这是我创建的类。
现在我想重新获得价值:
SDTNode end = r[0];
它给了我一个错误。有没有办法做到这一点?
答案 0 :(得分:3)
如果你知道r
的所有元素都是SDTNode
个对象,那么你应该像这样定义它:
SDTNode[] r = new SDTNode[2];
否则,有关内容的类型信息将为“某些Object
,我们不知道具体内容”,您必须投射:
SDTNode end = (SDTNode) r[0];
这将始终编译,但如果r[0]
不实际引用SDTNode
,则会在运行时失败。
答案 1 :(得分:0)
你需要施展它:
SDTNode end = (SDTNode)r[0];