package com.reflect.classinfo;
import java.lang.reflect.Array;
public class ArrayTest {
public static void main(String[] args) {
// 创建一个三维数组
// 说明,我们学过:三维数组也是一维数组,是数组元素是二维数组的一维数组,因此可以认为arr是长度为3的一维数组
Object arr = Array.newInstance(Array.class, 3, 4, 10);
// 获取arr数组中index为2的元素,应该是二维数组
Object arrObj = Array.get(arr, 2);
// 使用Array为二维数组的数组元素赋值,二维数组的数组元素是一维数组,所以传入Array set方法的第三个参数一维数组
Array.set(arrObj, 2, new String[] { "Jack", "John" });
// 获取arrObj数组中index为3的元素,应该是一维数组
Object anArr = Array.get(arrObj, 3);
Array.set(anArr, 8, "Lucy");
// 将arr强制类型转换为三维数组
String[][][] cast = (String[][][]) arr;
// 获取cast三维数组中指定元素的值
System.out.println(cast[2][3][8]);
System.out.println(cast[2][2][0]);
System.out.println(cast[2][2][1]);
}
}
为什么在Object arr = Array.newInstance(Array.class, 3, 4, 10);newInstance处会报错啊????
答案:2 悬赏:70 手机版
解决时间 2021-03-10 18:13
- 提问者网友:树红树绿
- 2021-03-10 05:57
最佳答案
- 五星知识达人网友:廢物販賣機
- 2021-03-10 06:20
Object arr = Array.newInstance(Array.class, 3, 4, 10);
改成
Object arr = Array.newInstance(String.class, 3, 4, 10);
就可以了。
改成
Object arr = Array.newInstance(String.class, 3, 4, 10);
就可以了。
全部回答
- 1楼网友:大漠
- 2021-03-10 07:32
搜一下:为什么在Object arr = Array.newInstance(Array.class, 3, 4, 10);newInstance处会报错啊????
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯