黑马程序员技术交流社区
标题:
java 反射
[打印本页]
作者:
马蒙蒙
时间:
2011-7-27 19:29
标题:
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);是什么意思呢?
作者:
匿名
时间:
2011-7-27 19:33
Array是这个类的名字,然后Array.get(arr,3);就是获得arr这个对象上的第三个数据。
就像下边的例子[code]package cn.com.reflection;
import java.lang.reflect.Array;
public class ArrayTester1 {
/**
* 此类根据反射来创建
* 一个动态的数组
*/
public static void main(String[] args) throws ClassNotFoundException {
Class classType=Class.forName("java.lang.String");
Object array= Array.newInstance(classType,10); //指定数组的类型和大小
//对索引为5的位置进行赋值
Array.set(array, 5, "hello");
String s=(String)Array.get(array, 5);
System.out.println(s);
//循环遍历这个动态数组
for(int i=0;i<((String[])array).length;i++){
String str=(String)Array.get(array, i);
System.out.println(str);
}
}
}[/code]
作者:
匿名
时间:
2011-7-28 11:02
标题:
取得对象中的第三个数据
Object arr=Array.newInstance(Integer.TYPE,dims);
上面代码通过反射动态的创建一个数组对象,类似于.NET中加载程序集动态创建对象一样
得到数组对象后 就可以对这个数组进行操作了,
Object arrobj=Array.get(arr,3); 就相当于取得数组对象中的第三个数据,再把它赋给另一个对象arrobj
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2