一个关于用Array.newInstance方式创建多维数组的问题

来源:互联网 发布:知乎书籍推荐 编辑:程序博客网 时间:2024/06/08 15:17


一个关于用Array.newInstance方式创建多维数组的问题


在论坛中看到的问题,自己弄明白后回复的答案,随笔记录下:

import java.lang.reflect.Array;public class Test{public static void main(String[] agrs){//定义三维数组的各维大小,第一维5,二维10,三维15int dims[]={5,10,15};//创建一个int类型的dims.length维数的新数组,dims.length等于3,即创建一个三维数组Object arr=Array.newInstance(Integer.TYPE,dims);//获取三维数组中的角标为3的元素即一个[10][15]的二维数组//第一维设置为5,所以最大不能超过4Object arrobj=Array.get(arr,3);//显示arrobj二维的class值System.out.println(arrobj.getClass());//arrobj是个三维下的二维数组,获取的cls是arrobj中的元素类型,即一个一维数组Class cls=arrobj.getClass().getComponentType();System.out.println(cls);//设置二维数组arrobj中的值,设置麻烦Array.set(arrobj, 9, new int[]{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14});//输出,需将Object转换成二维数组类型int[][] a = (int[][])arrobj;System.out.println(a[9][14]);}}


原创粉丝点击