Java 这是初始化数组的合法方法。但是我如何访问它的元素呢?

Java 这是初始化数组的合法方法。但是我如何访问它的元素呢?,java,arrays,initialization,Java,Arrays,Initialization,我正在准备入门级的Oracle认证-OCA-Java程序员I,因为他们要求人们在获得下一个证书之前先获得这一证书(过去可以直接获得SCJP,这相当于OCP-Java程序员II) 我在数组初始化时遇到了这个问题,这让我有点困惑。显然,可以这样声明和初始化数组: Object[] objects = { new Object[1], new Object[34] }; 由于数组是对象,因此可以将对象数组粘贴到对象数组中。您可以通过执行objects[0]或objects[1]轻松获取一个或另一个对

我正在准备入门级的Oracle认证-OCA-Java程序员I,因为他们要求人们在获得下一个证书之前先获得这一证书(过去可以直接获得SCJP,这相当于OCP-Java程序员II)

我在数组初始化时遇到了这个问题,这让我有点困惑。显然,可以这样声明和初始化数组:

Object[] objects = { new Object[1], new Object[34] };
由于数组是对象,因此可以将对象数组粘贴到对象数组中。您可以通过执行
objects[0]
objects[1]
轻松获取一个或另一个对象数组,但您将从那里获得什么?您将如何访问存储在
对象[1]
下的对象数组中的第16个对象

基本上,我的问题可以简化为:

Object o = new Object[100];

以上内容汇编而成。但是,如何访问对象数组中的单个对象
o

您必须将其转换回
对象[]

    Object o = new Object[] {new String("abc"), null, new Integer(1)};
    Object[] arr = (Object[]) o;
    Object elem = arr[0];
    System.out.println(elem);
这将打印
abc


它之所以有效,是因为
System.out.println()
乐于接受
对象。如果它需要一个
字符串
,则需要另一个向下转换。

一个
对象[]
也是一个
对象
,这就是您的声明的原因

Object o = new Object[100];
可以工作。*但要访问元素,需要将其强制转换回
对象[]
。例如:

Object elt = ((Object[]) o)[3];
对于您的原始声明:

Object[] objects = { new Object[1], new Object[34] };
您必须执行类似的操作才能访问
对象[1]
的第16个元素:

Object elt = ((Object[]) (objects[1]))[15];
当然,您可以通过声明:

Object[][] objects = { new Object[1], new Object[34] };
首先。然后你可以只做
对象[1][15]


*请注意,这仅适用于
对象
,它在Java中具有作为对象层次结构根的特殊状态。无法将
整数[]
分配给
整数
变量。

ahhh。。。愚蠢的我。演员阵容是所需要的一切。其余的我都明白。