我可以轻松地在对象数组中放入和取出整数数组数据:
Object[] ObjArr=new Object[]{1,"alo",3,new int[]{9,8,7} };
int[] out=ObjArr[3];
但是对象数组是不可能的
Object[] ObjArr=new Object[]{1,"alo",3,new Object[]{9,"elo",7} };
Object[] out=ObjArr[3];
如果我使用2维数组Object [] [],则所有元素都必须是Object Array类型。但是我需要多个变量类型。如何解决呢? 对象数组中的对象数组变成了对象,当尝试toString()时我得到了5,我可以将此ID链接到真实数据吗(我认为它是哈希码,无法获取我想要的数据)
答案 0 :(得分:0)
您的第一个代码段也不应该编译:)
您需要广播。基本上,它告诉编译器您可以确定该东西(ObjArr[3]
)是这种类型(Object[]
),否则,程序将崩溃。
Object[] out=(Object[])ObjArr[3]; // this will crash if ObjArr[3] is something else, like an int
如果ObjArr[3]
不是Object[]
对您的情况没有致命的影响(可以处理这种情况),则可以在投放之前进行检查:
if (ObjArr[3] instanceof Object[]) {
Object[] out = (Object[])ObjArr[3];
// continue with "out"
} else {
// ObjArr[3] is not an Object[]. Handle this situation
}