黑马程序员技术交流社区

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

作者: 小小瓶盖❤    时间: 2014-2-21 10:30
标题: java反射
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();
这句也是一样为什么也就变成了一维的呢?
我真的搞不懂,谁能帮我看一下好吗?谢谢
作者: 一年_Hei    时间: 2014-2-21 13:35
arr确实是三维,Array.get(arr,3)是返回arr中角标为3的元素。因为arr是三维。所以返回里面的肯定是一个二维。如果arr是二维返回的就是一维了。arrobj.getClass().getComponentType()该方法返回的是数组里元素的类型。因为arrobj是二维。所以里面元素是一个一维数组
作者: 何苦似梦离    时间: 2014-2-21 13:57
本帖最后由 何苦似梦离 于 2014-2-21 14:00 编辑

arr前面两维被当成Object对象了




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