Java 这是初始化数组的合法方法。但是我如何访问它的元素呢?
我正在准备入门级的Oracle认证-OCA-Java程序员I,因为他们要求人们在获得下一个证书之前先获得这一证书(过去可以直接获得SCJP,这相当于OCP-Java程序员II) 我在数组初始化时遇到了这个问题,这让我有点困惑。显然,可以这样声明和初始化数组: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]轻松获取一个或另一个对
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。。。愚蠢的我。演员阵容是所需要的一切。其余的我都明白。