黑马程序员技术交流社区
标题:
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
import java.lang.reflect.Array;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] arr = {"a","b","c","d"};
Object obj = Array.get(arr, 2);//这句话的意思就是获取数组相应角标位的值
System.out.println(obj);//打印的是c,也就是数组arr第2个角标位的值
Class cls = arr.getClass().getComponentType();//返回数组的类型
System.out.println(cls);//打印的是class java.lang.String
}
}
复制代码
我用上面那个例子给你解释,你应该明白吧.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2