黑马程序员技术交流社区

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

作者: 邱成    时间: 2012-9-12 13:01
标题: java数组反射问题
本帖最后由 邱成 于 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();
这句也是一样为什么也就变成了一维的呢?
我真的搞不懂,谁能帮我看一下好吗?谢谢
作者: 张 涛    时间: 2012-9-12 13:11
Object arr=Array.newInstance(Integer.TYPE,dims);
这句是什么意思?

作者: 张 涛    时间: 2012-9-12 13:12
Object arr=Array.newInstance(Integer.TYPE,dims);
这句是什么意思?

作者: 王金科    时间: 2012-9-12 13:55
关注!!!!!!!!!!!
作者: 邱成    时间: 2012-9-12 14:05
张 涛 发表于 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)。
作者: 王金科    时间: 2012-9-12 21:00
  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. }
复制代码
我用上面那个例子给你解释,你应该明白吧.





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