A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邱成 中级黑马   /  2012-9-12 13:01  /  1264 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邱成 于 2012-9-12 14:33 编辑

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();
这句也是一样为什么也就变成了一维的呢?
我真的搞不懂,谁能帮我看一下好吗?谢谢

5 个回复

倒序浏览
Object arr=Array.newInstance(Integer.TYPE,dims);
这句是什么意思?
回复 使用道具 举报
Object arr=Array.newInstance(Integer.TYPE,dims);
这句是什么意思?
回复 使用道具 举报
关注!!!!!!!!!!!
回复 使用道具 举报
张 涛 发表于 2012-9-12 13:12
Object arr=Array.newInstance(Integer.TYPE,dims);
这句是什么意思?

newInstance
public static Object newInstance(Class<?> componentType,
                                 int... dimensions)
                          throws IllegalArgumentException,
                                 NegativeArraySizeException创建一个具有指定的组件类型和维度的新数组。如果 componentType 表示一个非数组类或接口,则新数组具有 dimensions.length 维度,并且将 componentType 作为其组件类型。如果 componentType 表示一个数组类,则新数组的维数等于 dimensions.length 和 componentType 的维数的总和。在这种情况下,新数组的组件类型为 componentType 的组件类型。
新数组的维数不能超过该实现所支持的数组维数(通常为 255)。
回复 使用道具 举报
  1. import java.lang.reflect.Array;


  2. public class Test {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.                 String[] arr = {"a","b","c","d"};
  9.                 Object obj = Array.get(arr, 2);//这句话的意思就是获取数组相应角标位的值
  10.                 System.out.println(obj);//打印的是c,也就是数组arr第2个角标位的值
  11.                 Class cls = arr.getClass().getComponentType();//返回数组的类型
  12.                 System.out.println(cls);//打印的是class java.lang.String
  13.         }

  14. }
复制代码
我用上面那个例子给你解释,你应该明白吧.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马