初始化对象类型的数组

uml*_*uml 3 java arrays object

这是Java中的代码片段:

Object ob = new int[2];
Run Code Online (Sandbox Code Playgroud)

现在让我们说我想初始化数组.这个 ob[0] = 5; 将无法工作,因为ob属于Object类型.施法也不起作用:

(int[])ob[0] = 5;
Run Code Online (Sandbox Code Playgroud)

顺便说一下,(int[]ob)[0]= 5; 会导致语法错误.那么,如何在没有硬编码的情况下在运行时分配值(例如Object ob = new int[]{1,2}?这不是家庭作业,我正在尝试理解Java.这是为了准备Java认证所必需的.干杯

Roh*_*ain 11

你试图抛出价值ob[0]而不是ob自己.你需要先铸造你的ob第一个int[],然后在索引上使用它[0].

((int[])ob)[0] = 5;
Run Code Online (Sandbox Code Playgroud)

注意: -括号很重要.但是你为什么要做这样的事呢?


如果您不想硬编码值,并希望在运行时使用它,那么您应该在评论中遵循@HotLicks提到的内容.

Object ob = new int[5];

int[] tempArr = (int [])ob;

for (int i = 0; i < tempArr.length; i++) {
    tempArr[i] = i;
}
Run Code Online (Sandbox Code Playgroud)