【问题标题】:Android Java, get data of Object Array inside Object ArrayAndroid Java,获取Object Array里面的Object Array的数据
【发布时间】:2018-12-20 09:12:06
【问题描述】:

我可以轻松地在 Object Array 中放入和取出 Integer Array 数据:

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];

如果我使用二维数组 Object[][],则所有元素都必须是 Object Array 类型。但我需要多个变量类型。如何解决这个问题? Object Array里面的那个Object Array变成了Object,我尝试toString()的时候得到了数字5,我可以把这个id链接到真实数据(我认为它是hashcode,不可能得到我想要的数据)

【问题讨论】:

  • 有什么理由不能使用List
  • 在这种情况下,使用 Object[] 更快,输入写入更少,因为我在数组和包含与其自身相似的子结构(它将成为无穷维数组,免费且快速)。但是,我已经改变了其他方式(建立一个新类),它工作正常。谢谢。

标签: java android arrays object dimensions


【解决方案1】:

您的第一个代码 sn-p 也不应该编译 :)

你需要一个演员。它基本上告诉编译器你确定这个东西(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
}

【讨论】:

  • 我以前试过这个。 ObjArr[3] 仍然是 Object,而不是 Object[]。因此,在尝试“instanceof Object[]”时它总是返回 false。不过,谢谢。
猜你喜欢
  • 2022-12-01
  • 2022-12-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-29
  • 1970-01-01
  • 2022-12-01
  • 1970-01-01
  • 2015-05-03
相关资源
最近更新 更多