黑马程序员技术交流社区

标题: java数组反射问题 [打印本页]

作者: 月时微    时间: 2013-6-19 13:06
标题: java数组反射问题
本帖最后由 Super_Class 于 2013-6-20 23:59 编辑

public static void main(String[] args) {

int dims[]={5,10,15};
Object arr=Array.newInstance(Integer.TYPE,dims);
Object arrobj=Array.get(arr,3);
System.out.println(arrobj.getClass());
Class cls=arrobj.getClass().getComponentType();
}
请问这句里的 Object arrobj=Array.get(arr,3);是什么意思呢?我看帮助文档说是返回指定数组对象中索引组件的值,可是arr不是是三维的吗?怎么Array.get(arr,3)就变成了二维的呢?Class cls=arrobj.getClass().getComponentType();
这句也是一样为什么也就变成了一维的呢?

作者: First    时间: 2013-6-19 17:12
                int dims[]={5,10,15};
                Object arr=Array.newInstance(Integer.TYPE,dims);// arr = new int[5][10][15]
                Object arrobj=Array.get(arr,3);//--> arrobj = arr[3] --> new int[10][15];
                System.out.println(arrobj.getClass());//arrobj 2维数组
                Class cls=arrobj.getClass().getComponentType();//arrobj[] 的数据类型是 int[] 是一维数组。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2